1

基本的なものが欠けているかもしれませんが、これを行う方法にこだわっています。

私は 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 ドキュメントを読むように言う前に、私は今日何度か持っていると言いたいのですが、そこにある例は、パラメーターがコントローラーにハードコーディングされているため、これについて何の光も当てていません。)

4

1 に答える 1

1

クエリ呼び出しから返されるものが配列にならないことを明示的に述べています。そうである場合はエラーがスローされ、クラスを探しているため、エラーが発生する可能性があります(複数の悲鳴の配列が私にはあります)。これを true に変更すると機能しますか?

EDITED ダイジェスト サイクル ループに陥っています。ダイジェストの仕組みは次のとおりです: http://docs.angularjs.org/guide/concepts#runtime

呼び出しが戻ってくると、ページの更新がトリガーされ、別のサービスが呼び出され、ループが最初からやり直されます。

あなたが明らかにしたようにそれを修正する方が良いです。

于 2013-10-30T15:30:06.843 に答える