在ng-repeat和返回数组中调用角度函数

时间:2017-12-13 11:24:21

标签: html angularjs

我搜索了这个但是我没有得到任何答案,请给我一个解决方案,我想在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,但我不知道如何使用它可以任何人帮助我吗?

1 个答案:

答案 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>