13

AngularJSとRequireJSを組み合わせて使用​​しようとしています。このサービスを使用して$routeProvider、アプリケーションの起動時にビューのすべてのコントローラーをロードする必要がないようにしたいと思います。そのために、私は次のことを試みました:

define(['require', 'angular', 'appModule'], function (require, angular, app) {
    app.config(['$routeProvider', function($routeProvider) {
      $routeProvider
          .when('/sites', {templateUrl: '/Site/GetSitesView', controller: function() {
            require(['sitesController'], function(SitesController) {
                return new SitesController();
            })
        }})
    }]);
});

残念ながら、それは私にはうまくいきませんでした。エラーはありません。コントローラを含むJSファイルは正しくロードされていますが、レンダリングされたビューにデータバインドされた値が表示されません。controller非同期呼び出し(JSファイルをロードするため)が完了するのを待つ他の方法での値を割り当てることができるかどうか疑問に思いました。

何か案は?

4

1 に答える 1

5

ここで解決策を見つけることができます

各ルートで解決プロパティを定義し、promise を返す関数に割り当てる必要があります。この関数は、ターゲット コントローラーを含むスクリプトを動的に読み込み、読み込みが完了すると promise を解決できます。この記事では、Dan Wahlinが、より実用的なルーティングを実現するために、構成より規則を使用する方法を示しています。

于 2014-01-29T11:46:03.090 に答える