我想使用以下代码显示所有文件名并为每个文件提供下载按钮:(这个问题的标题可能不太正确)
HTML:
<div ng-repeat="file in fileCtrl.filesInfo">
<form method="get" ng-submit="fileCtrl.download()">
<button type="submit">download</button>
</form>
<p> {{file.filename}} </p>
<hr>
</div>
</div>
fileCtrl Controller :
// ... some more codes here
var vm = this;
vm.download = function() {
File // service
.getFile(filename)
.success(function(data) {
//.....
});
};
// ... some more codes here
文件服务:
fileFactory.getFile = function(filename) {
return $http.get('/api/files/' + filename);
};
问题:当用户点击下载按钮时,会有一个特定的文件名
,如何将文件名
传递给 Controller 并让 Controller 知道用户下载的是哪个文件想要下载,然后执行.getFile(filename)
?
最佳答案
您不需要为此提供表格。相反,请在按钮上使用 ng-click
操作。
<div ng-repeat="file in fileCtrl.filesInfo">
<button ng-click="fileCtrl.download(file.filename)">download</button>
<p> {{file.filename}} </p>
<hr>
</div>
另请注意,您应该使用 .then
而不是已弃用的 .success
。
var vm = this;
vm.download = function(filename) {
File // service
.getFile(filename)
.then(function(data) {
//.....
});
};
关于javascript - 使用 ng-repeat 时如何在前端选择数组的特定元素并返回到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33836595/