ng-单击复选框返回数组

时间:2014-03-31 21:37:33

标签: angularjs scope ng-class

我的AngularJS应用程序有问题,我尝试在我的控制器中调用一个函数,但是我console.log(id);时的参数,id是一个数组......

我使用[ ]代替{{ }},因为我正在使用TWIG

角度模板(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>

1 个答案:

答案 0 :(得分: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