基本的なものが欠けているかもしれませんが、これを行う方法にこだわっています。
私は 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; エンドポイントから返されるクラス リソースのグループを選択するには、テンプレートから 1 学期を渡す必要があります。
どんな助けでも大歓迎です!
(誰かが $resource ドキュメントを読むように言う前に、私は今日何度か持っていると言いたいのですが、そこにある例は、パラメーターがコントローラーにハードコーディングされているため、これについて何の光も当てていません。)