作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在同一个ng-repeat中获取两个对象的值
$http.get('/api/PreviewPayroll').success(function (data){
//alert(data[0].empID);
$scope.allowance = data;
});
$http.get('/api/Deduction').success(function (data){
//alert(data[0].empID);
$scope.Deduction = data;
});
<tr ng-repeat="item in allowance && ng-repeat="value in Deduction">
<td>{{ item.empID }}</td>
<td>{{ value.empID }}</td>
</tr>
如何在同一个 ng-repeat 上获取两个作用域对象
最佳答案
因此您需要合并数据。
您可以使用$q.all(promises)
:
var promise1 = $http.get('/api/PreviewPayroll');
var promise2 = $http.get('/api/Deduction');
$q.all([promise1, promise2]).then(function (results) {
var allowances = results[0];
var deductions = results[1];
var combinedList = /* some combination logic */;
});
通过使用$q.all()
,您可以确保在尝试组合任何内容之前拥有两个数据列表。您可以轻松地使用它以获得所需的效果。例如,如果您不关心其他列表是否不可用。
然后您可以使用 ng-repeat
来迭代该新的组合列表:
<tr ng-repeat="item in combinedList">
<td>{{ item.allowance.empID }}</td>
<td>{{ item.deduction.empID }}</td>
</tr>
子属性津贴
和扣除
基于您的组合列表。
我诚实地认为,服务器端以您需要显示的格式提供数据。(即业务逻辑在受控环境中保留在服务器端)。我相信 View 应该只处理 View 逻辑,例如按钮操作等。
但这是我的观点,也是我认为最简单的。
我更喜欢将 View 逻辑保留在 JavaScript 中,因此我在那里组合数据。而不是尝试在 HTML 中做一些过于复杂的 Angular 表达。
关于javascript - 如何在 ng-repeat 上获取两个 Controller 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37677402/
我是一名优秀的程序员,十分优秀!