我愉快地使用从溶液@雪人的答案文件选择到this questionAngularJs - 在NG-重复文件选择
但是现在,我想在ng-repeat
循环中使用它,我坚持。
我从这个问题复制解决方案的自由:
angular
.module('app.services')
.directive('fileChange', function() {
return {
restrict: 'A',
scope: {
handler: '&'
},
link: function (scope, element) {
element.on('change', function (event) {
scope.$apply(function(){
scope.handler({files: event.target.files});
});
});
}
};
});
<input type="file" file-change handler="fileSelect(files)">
$scope.fileSelect = function(files) {
var file = files[0];
var reader = new FileReader();
reader.onload = function(e) {
console.log("on load", e.target.result);
}
reader.readAsText(file);
}
如何指示刚刚度过它的文件中选择哪张照片的$scope.fileSelect()
功能?
[更新]唉!我只是意识到我没有把这个问题弄清楚。 我需要的文件名,和从重复一些其他数据。比方说,我想要一个文件名和图像的说明,由用户输入。
因此,我宣布
$scope.image = {'fileName' : '',
'description' : ''};
$scope.images = []; // array of $scope.image
而且,在HTML中,ng-repeat
,我会说我不(仅仅是伪代码)
<ng-repeat image in images>
<input type="text" ng-model="image.description"/>
<input type="file" file-change handler="fileSelect(files)">
这是最后<input>
知道如何编码。理想情况下,我想将image
对象传递给file-change handler
函数。
我该怎么做?
[最终更新]以防万一谁读这个&发现它很有趣。
<ng-repeat image in images>
<input type="text" ng-model="image.description"/>
<input type="file" file-change handler="fileSelect(image , files)">
在控制器中加入一个image
参数,并且还$scope.fileSelect(image , files)
。需要注意的是没有变化被要求的指令。
作品像一个魅力
它是不是经常,我看到这样的神,详细的解答,从一个新的家伙命令(欢迎登机),所以我愿买电子健康我奖励100点奖励。谢谢。它当然工作得很好,所以我会想法如何适应我的代码。 – Mawg
啊!我只是意识到我没有把这个问题弄清楚。请参阅更新。如果很容易,请让我们知道;否则,我会发布一个新的,更清晰的问题。我的道歉,并且在系统允许的情况下,我仍然会在2天内给您奖励 – Mawg
我明白了,感谢您的帮助。我更新了问题以给出答案。期待您的赏金在2天时间内:-) – Mawg