我使用以下 loadLocation(asset.id) 函数通过 ng-repeat 和 ng-init 加载特定 Assets 的位置,但我得到所有行的最新 location.city 和 location.state
<tr ng-repeat="asset in assets">
<td>{{asset.name}}</td>
<td>{{asset.obj_type.name}}</td>
<td ng-init="loadLocation(asset.id)">
{{location.city}}
</td>
<td>{{location.state}}</td>
</tr>
Angular Controller
$scope.loadLocation= function(assetId) {
Location.locationByIsprimary({assetId: assetId}, function(result) {
$scope.location=result;
});
};
谁能帮帮我?
最佳答案
您只在 scope
中创建了一次 location
,您需要为 ng-repeat
数组中的每个元素创建它,以便将反射(reflect)在 html 上。
标记
<tr ng-repeat="asset in assets">
<td>{{asset.name}}</td>
<td>{{asset.obj_type.name}}</td>
<td ng-init="loadLocation(asset)">
{{asset.location.city}}
</td>
<td>{{asset.location.state}}</td>
</tr>
代码
$scope.loadLocation= function(asset) {
Location.locationByIsprimary({assetId: asset.id}, function(result) {
asset.location=result;
});
};
关于javascript - 将 ng-init 与 ng-repeat 一起使用时覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30651179/