我正在尝试使用由ng-click
动态生成的ng-repeat
调用函数,问题是我无法获取ng-click
函数中传递的参数值。我的HTML代码是
<div class="col-md-4 col-xs-12 col-lg-4" ng-repeat="(key, value) in uploadedFiles">
<b>value.filename is {{value.filename}}</b>
<img ng-if="value.filetype=='jpg'" ng-src="http://localhost:3000/uploads/{{value.filename}}" class="img img-responsive thumbnail uploadedfile-thumb"/>
<img ng-if="value.filetype=='PDF'" ng-src="images/pdf-thumb.jpg" class="img img-responsive thumbnail uploadedfile-thumb"/>
<a ng-href="http://localhost:3000/uploads/{{value.filename}}" target="_blank" class="uploaded-file-links">View</a>
<a ng-href="#" ng-click="deleteFile(value.filename);" class="uploaded-file-links">Delete</a>
</div>
我没有得到deleteFile()
传递的文件名,它在第二行的<b>
标签中工作,所以最后这是我的角度表达式的问题所以我应该怎么写呢?
答案 0 :(得分:0)
我会尝试在这里做一些猜测。
我认为你的uploadedFiles
是一个目标数组,而不是一个对象本身。在这种情况下,您应该使用ng-repeat="file in uploadedFiles"
来迭代数组元素。这将迭代您的数组并将该迭代的相应对象赋值给file
变量。
ng-repeat="(key, value) in uploadedFiles"
用于迭代对象属性而不是迭代数组元素。例如,如果uploadedFiles
是:
var uploadedFiles = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3'
};
你会像这样迭代它:
<ul>
<li ng-repeat="(key, value) in uploadedFiles">
{{value}}
</li>
</ul>
您将获得以下输出:
但如果uploadedFiles
是一个像这样的数组:
var uploadedFiles = [
{
prop1: 'value11',
prop2: 'value12',
},
{
prop1: 'value21',
prop2: 'value22',
},
{
prop1: 'value31',
prop2: 'value32',
}
];
你按照这样迭代:
<ul>
<li ng-repeat="file in uploadedFiles">
{{file.prop1}}
</li>
</ul>
你会得到:
所以在你的情况下,我会尝试以下方法:
<div class="col-md-4 col-xs-12 col-lg-4" ng-repeat="file in uploadedFiles">
<b>file.filename is {{file.filename}}</b>
<img ng-if="file.filetype=='jpg'" ng-src="http://localhost:3000/uploads/{{file.filename}}" class="img img-responsive thumbnail uploadedfile-thumb"/>
<img ng-if="file.filetype=='PDF'" ng-src="images/pdf-thumb.jpg" class="img img-responsive thumbnail uploadedfile-thumb"/>
<a ng-href="http://localhost:3000/uploads/{{file.filename}}" target="_blank" class="uploaded-file-links">View</a>
<a ng-href="#" ng-click="deleteFile(file.filename);" class="uploaded-file-links">Delete</a>
</div>