0

ng-view を使用し、その中に ng-repeat を含む単純なアプリがあります。最初はng-viewなしでやっていましたが、うまくいきました。その後、ng-view に変換したところ、ng-repeat が失敗しました。ng-repeat だけが $var を吐き出し、実際の値は吐き出していませんでした。(さらに奇妙なことに、「メニュー」リンクをクリックすると、ページを変更する代わりに、吐き出された $var の別のチャンクが生成されます。)

ここでの回答は、アイテムを $rootscope に配置する必要があることを示していますが、どの方法を試しても機能しないようです。全体が静かに失敗するだけなので、続行するエラーメッセージさえありません。私が理解できることから、これは $rootscope が読み取られていることを意味しますが、他の何かが失敗しています。何だかわかりません。

最後から 2 番目の試みでhttp://plnkr.co/edit/fuz6JELf1em7VHrY41u4にプランカーをセットアップしました。私の現在の試みでは、代わりにサービスを使用して別のバリエーションを試していますが、これも機能しません。

app.controller('VerbsController', [ '$rootScope', function( $rootScope ) {
    $rootscope.jverbs = [
        {id: 41, name:"Furu", vClass:"Class I", plainPreAffR :"furu", plainPreAffK:"ふる", vKanji1:"下る, 降る", vDef1:"to fall, descend", vType1:"v.i. ", vKanji2:"振る", vDef2:"to wave, shake, swing; throw (dice); reject, abandon", vType2:"v.t."  },
        {id: 42, name:"Futoru", vClass:"Class I", plainPreAffR :"futoru", plainPreAffK:"ふとる", vKanji1:"太る", vDef1:"to gain weight, become fat", vType1:"v.i."  },
        {id: 43, name:"Fuyasu", vClass:"Class I", plainPreAffR :"fuyasu", plainPreAffK:"ふやす",vKanji1:"増やす", vDef1:"to increase, augment", vType1:"v.t."  }
    ];
}]);

app.controller('MenuController', function($scope, $location) {
    $scope.olist = function() { $location.path('/list'); };
});

app.controller('ListController', function( $rootscope, $scope, $location) {
    $scope.omenu = function() { $location.path('/menu'); };
}); 

私が見逃しているのは、うっとうしいほど小さなものでなければなりません。誰かがそれを見つけるのを手伝ってくれるなら、事前に感謝します!

4

1 に答える 1

1

plunkr をフォークして、問題を解決しようとしました。plunkr コードには多くの問題がありました。ほとんどの場合、使用されている大文字と小文字が正しくないことに関連しており、ルート パスはpartial存在しないフォルダーを指していました。

しかし、主な問題は、ListController の定義が正しくなく、テンプレートのレンダリングが失敗したことであると考えられています。

以前はこんな感じ( の付いたタイプもあります$rootScope

app.controller('ListController', function( $rootscope, $scope, $location) {
    $scope.omenu = function() { $location.path('/menu'); };
});

これが正しい方法です

app.controller('ListController', ['$rootScope', '$scope', '$location',function( $rootScope, $scope, $location) {
    $scope.omenu = function() { $location.path('/menu'); };
}]);

あなたはそれが実際にここにあるのを見る

http://plnkr.co/edit/Y4O5bgy6NH4MIH8A0xWI?p=preview

于 2013-06-23T06:28:26.317 に答える