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 回答