我搜索了这个但是我没有得到任何答案,请给我一个解决方案,我想在ng-repeat中使用ng-init,ng-init应该在每个循环给我不同的响应这里是我的HTML
(n-2)
我的js是
<html>
<body ng-app="crmApp">
<div ng-controller="customerDetailController">
<div ng-repeat="clientDetail in client">
<p>{{clientDetail.name}}</p>
<div ng-init="seoDetails = getCustDetail(clientDetail.name)">
<p>{{seoDetails.cust_Name}}</p>
</div>
</div>
</div>
</body>
</html>
在内部的getCustDetail函数中,我被告知它会显示名称,但我不知道为什么它没有在HTML中显示。我做错了什么?
我有一个解决方案,我想我必须使用Promises,但我不知道如何使用它可以任何人帮助我吗?
答案 0 :(得分:1)
您不能将ng-init
用于此目的。
您可以在控制器内部进行数据获取。就像是,
customerDetailFactory.getCustomerDetailData()
.then(function(response) {
$scope.client = response.data;
// for each clients, fetch 'seoDetails'
$scope.client.forEach(function(client) {
customerDetailFactory.getCustomerDetailData(client.name)
.then(function (response) {
// I hope response.data contains 'cust_Name'
client.seoDetails = response.data;
})
});
});
现在,在视图中,您可以直接使用seoDetails属性
<div ng-repeat="clientDetail in client">
<p>{{clientDetail.name}}</p>
<p>{{clientDetail.seoDetails.cust_Name}}</p>
</div>