0

AngularJS アプリケーションに問題があります。コントローラーで関数を呼び出そうとしましたがconsole.log(id);、id が配列の場合のパラメーター...

私はTWIGを使っているので、[ ]代わりに使用します{{ }}

Angular テンプレート (html ソース)

<div class="ext-[f.ext]" ng-repeat="f in files">
    <input type="checkbox" ng-click="select([f.id],'file')">
    <div>[f.name]</div>
</div>

Angular でレンダリング

<div class="ext-html" ng-repeat="f in files">
    <input type="checkbox" ng-click="select(27,'file')">
    <div ng-binding">index.html</div>
</div>

私のJS関数

$scope.select = function (id ,type) {
    console.log(id); // Array
    console.log(type); // String (as expected)
}

コンソール出力:

[28] app.js:74
file app.js:75

問題は、これが機能することです...

<div class="folder row" ng-repeat="f in folders" ng-click="getFolder([f.id])">
    <div class="col-md-12">[f.name]</div>
</div>
4

1 に答える 1

1

パラメータとして配列を指定しています。

<input type="checkbox" ng-click="select([f.id],'file')">

する必要があります

<input type="checkbox" ng-click="select(f.id,'file')">

角括弧を使用して JavaScript で配列を作成します。

var array = [ 1, 2, 3, 4];

したがって、ID である単一の値を持つ配列を作成しました。

  1. バインディングに配列と同じ構文を使用する場合でも、そのコンテキストでバインディングを使用する必要はありません。
  2. 予期しない動作が発生する可能性があるため、標準の言語構成を「オーバーライド」してまったく異なることを行うべきではありません
  3. 証明http://plnkr.co/edit/4n2yg6QudzcFA5bazjZ3?p=preview
于 2014-03-31T21:45:34.663 に答える