非常具体的问题,但重用:我试图将角度回调传递给javascript指令....见下文。 (通过onchange事件尝试product.id
)
$scope.fileNameChanged = function(folder, id){
console.log(folder + " " + id);
}
<div ng-repeat="product in products">
<form id="upload_form" enctype="multipart/form-data" method="post">
<span class="btn btn-default btn-file">
<span class="uploadButton">Choose...</span>
<input type="file" id="productsFile" onchange="angular.element(this).scope().fileNameChanged('products', product.id)" name="file">
</span>
</form>
</div>
控制台只显示Uncaught ReferenceError: product is not defined
,但我绝对知道product.id已定义,我在ng-repeat中完成了{{product.id}}
只是为了显示文本而且看起来很好......
我不确定是否应该在onchange参数中使用{{..}}
,所以我只尝试了{{product.id}}
并获得Error: [$compile:nodomevents]
。
我正在使用onchange,因为ng-change不支持文件输入,也不支持我读过的内容。
任何建议都是绝对精彩的,我不是特意想通过回调获得product.id但是任何角度范围变量......
答案 0 :(得分:1)
很抱歉回答我自己的问题,但这是我非常有效的解决方法!
我使用了元素的Id指令......
<span class="uploadButton">Choose...</span> <input type="file" id="{{product.id}}" onchange="angular.element(this).scope().fileNameChanged('products', this.id)" name="file">
使用this.id
得到它,现在作为通过onchange=""
传递角度范围的真正解决方案我真的不认为它是明智的,但在这种情况下它是我不会的'无论如何,请注意元素的ID。
我希望这对其他人有用。