承诺返回未更新的数组范围
Promise return Array Scope not updated
显示数据
<tr ng-repeat="item in getAllEngagementItems | filter:searchText">
<td>{{item.wafId}}</td>
<td>{{item.engagementProjectName}}</td>
<td>{{item.engagementLibraryStatus}}</td>
</tr>
在控制器app.controller("EngagementController", function ($scope, WAFDatafactory) {
$scope.getAllEngagementItems = myfunction();
function myfunction() {
var output;
var items = WAFDatafactory.getAllEngagementItems();
items.$promise.then(function (results) {
$scope.$emit('UpdateEngagementCount', results.length);
output = results;
console.log("Output detais :" + output);
}
, function (error) {
alert("Failed to Retrive data from server" + error);
console.log("Error detais :" + error);
});
return output;
}
});
datafactory
factory.getAllEngagementItems = function () {
var allEngagementItems = $resource("/api/data/GetEngagementData/").query();
return allEngagementItems;
}
输出:输出详细信息:[object object],[object object],[object object]....
我的范围。
我不认为output
是必要的。你可以只返回一个承诺。
app.controller("EngagementController", function ($scope, WAFDatafactory) {
$scope.getAllEngagementItems = myfunction();
function myfunction() {
var items = WAFDatafactory.getAllEngagementItems();
items.$promise.then(function (results) {
$scope.$emit('UpdateEngagementCount', results.length);
console.log("Output detais :" + results);
}
, function (error) {
alert("Failed to Retrive data from server" + error);
console.log("Error detais :" + error);
});
return items;
}
});
你的代码不工作的原因是:
运行myFunction()
时,WAFDatafactory.getAllEngagementItems()
返回promise,但实际查询是异步运行的。因此,当您返回output
时,它的值将是undefined
。然而,undefined
是一个原始值,而不是对象。因此,当您稍后更新output
时,它不会影响$scope.getAllEngagementItems
的实际值。
相关文章:
- 如何通过数组更新角度子范围
- 在对象数组中查找多个值的d3范围
- 从指定范围创建字符数组
- 如何创建一个方法来验证数组的范围
- JS:从数组中查找特定范围内的最低/最高数字
- 根据范围过滤角度.js数组
- 将数组传递给函数或确保它在范围内
- Angularjs:访问范围变量数组并计算平均值
- 搜索包含包含所需值的范围的数组
- 如何检查符号是否在范围(或数组)中
- 返回Javascript中给定正则表达式的文本范围数组
- 检查鼠标光标是否在带坐标的数组范围内
- 对在10的倍数的相同范围内的数组值进行分组
- 短范围命名空间数组是什么意思
- AngularJs 帮助,在传递给隔离范围的对象中选择数组时遇到问题
- 如何获取数组第一个元素的范围
- 传递数组 -- 范围
- 查找数组/范围javascript中所有丢失的元素
- 承诺返回未更新的数组范围
- 在数组范围中查找索引