在AngularJS中使用ng repeat调用和迭代函数返回值
calling and iterating over function return value using ng-repeat in AngularJS
在阅读了JS和AngularJS应用程序中嘲笑服务器依赖性的文章后,我目前正在我的小型AngularJS程序中重构我的主控制器。
在我的标记中,我使用ng-repeat
指令迭代"主要事件":
这是我的AngularJS模块,重构了存储库和控制器。
但是,我无法以这种方式访问主事件数组——我缺少什么?
// Module
var app = angular.module('MainEventApp', ['cloudinary']);
// Repository
app.service('MainEventRepository', ['$http', function($http) {
this.$http = $http;
this.getMainEvents = function() {
return [
{
id: 1,
roman_numeral: 'I',
name: 'Hulk Hogan & Mr T vs Rowdy Roddy Piper & Paul Orndorff',
venue: 'Madison Square Garden',
state: 'New York',
attendance: 19121
},
{
id: 2,
roman_numeral: 'II',
name: 'Hulk Hogan vs King Kong Bundy',
venue: 'Split-Transmission',
state: 'New York/Illinois/California',
attendance: 40085
}
];
};
}]);
// Controller
app.controller("MainEventCtrl", ['$scope', 'MainEventRepository', function ($scope, MainEventRepository) {
MainEventRepository.getMainEvents().then(function(main_events) {
//$scope.main_events = main_events;
return main_events;
});
}]);
我的实时应用程序可以在这里看到(尚未重构)。
首先,要在标记中使用main_events,您需要在控制器范围中具有此属性。
其次,您的服务返回简单数组,但在控制器中,您使用它就像它返回promise一样。
所以,你的控制器代码应该是这样链接的:
app.controller("MainEventCtrl", ['$scope', 'MainEventRepository', function ($scope, MainEventRepository) {
$scope.main_events = MainEventRepository.getMainEvents();
}]);
以及您的标记:
<li ng-repeat="event in main_events"></li>
您必须将main_events添加到您的作用域中。
MainEventRepository.getMainEvents().then(function(main_events) {
//$scope.main_events = main_events;
return main_events;
});
为什么承诺中的第一行被注释掉了?
相关文章:
- Ajax调用“;对于“;循环跳过奇数/偶数迭代
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- 如何验证for循环是否完成了node js中的所有迭代,循环是否包含带回调的函数调用
- node.js for循环在函数调用返回之前进行迭代,从而产生对象问题
- 如何重新构建此 for 循环,以便在异步 api 调用完成之前不会进行下一次迭代
- JavaScript uncatch TypeError:无法在第二次迭代时调用未定义的方法“拼接”
- 在进行 ajax 调用时迭代本地存储
- 如何检索 java 设置并迭代来自 ajax 调用响应的值
- 如何在 for 循环中维护迭代变量的原始值,该循环设置事件调用,其中迭代值是函数的一部分
- Javascript 对象调用其他对象粉碎迭代器
- 在AngularJS中使用ng repeat调用和迭代函数返回值
- 使用“each()”迭代时调用delay()
- 调用ng-erepeat内部的API函数,提示错误.达到10$digest()迭代.在angularjs中中止
- 只进行最后一次迭代的循环内函数调用
- 等待调用函数完成,然后再向前迭代
- 迭代条目列表,如果条目的文本与“某物”相对应,则调用append () html(使用jquery)
- 迭代javascript对象,以便将关键变量用作调用对象的方法
- 如何迭代javascript数组并调用更新相同数组的函数?
- 迭代js对象并调用函数
- 在迭代时删除调用click事件的每个绑定