在 ng-repeat="item in vm.items
中,我有以下 input["file"]
:
<input type="file"
ng-attr-id="image{{item}}"
class="form-control"
accept="image/*"
onchange="angular.element(this).scope().vm.openFile(event, item)"
required>
我正在调用 vm.openFile
使用 onchange
而不是 ng-change
因为 ng-change
不是支持 input["file"]
类型。
现在的问题是,由于以下错误,我无法将 item
传递给我的 onchange
函数:
Uncaught ReferenceError: 项目未定义
如何将 item
的值(只是一个字符串)传递到 ng-repeat
中的 onchange
函数?
最佳答案
因为 onchange
是一个内置函数,它不是由 angular 编译的,而是简单地执行全局范围的 javascript。因此,由于您的全局范围内没有 item
变量(这很好),它会崩溃。
出于与您不能简单地编写 vm
而必须编写 angular.element(this).scope().vm
相同的原因,您将需要对 item 变量使用相同的方法。因此 html:
onchange="angular.element(this).scope().vm.openFile(event, angular.element(this).scope().item)"
请注意,我不知道这个 event
变量来自哪里,所以如果它是一个 Angular 东西,你可能需要为它做同样的事情。
现在这是一个 hack agisnt Angular 设计原则,所以最好使用 David Williams 评论中指出的指令。
关于javascript - 如何将 ng-repeat 变量的值传递给输入 ["file"] 的 onchange 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28312512/