我可能会遗漏一些基本的东西,但我坚持如何做到这一点。
我有一个 ng-repeat 块:
<div data-class-block
ng-repeat="class in classList(1304)"
data-object="class">
</div>
在我的控制器中调用一个函数:
$scope.classList = function(semester){
var list = myClassesFactory.list(semester)
.then(function (data){
return data.classes;
}, function (error){
console.log('ruh roh: error in myclasses controller');
});
return list;
};
这反过来又打电话给工厂:
myclassesNest.factory('myClassesFactory', ['$http', '$resource', '$q', function ($http, $resource, $q) {
var myClassesResource = $resource(':sem/myclasses.json',
{},
{'query': {method: 'GET', params: {sem: '@sem'}, isArray: false} });
var factory = {
list : function(semester) {
var deferred = $q.defer();
myClassesResource.query({sem:semester},
function (resp) {
deferred.resolve(resp);
});
return deferred.promise;
}
};
return factory;
}]);
这完全炸毁了浏览器在错误后抛出错误,直到选项卡崩溃。哈哈。可能与摘要周期有关,这无疑是 Angular 的一个领域,我并不完全理解。
我将调用包装myClassesFactory.list
在一个函数中,因为当我将它直接分配给$scope
变量时,我收到一个错误,说它是一个对象而不是一个函数。
TLDR;我需要能够从模板中传递一个学期来选择要从端点返回的类资源组。
任何帮助是极大的赞赏!
(同样在有人说要阅读 $resource 文档之前,我想说我今天有好几次,那里的例子并没有说明这一点,因为它们将参数硬编码到控制器中。)