29

モジュールにいくつかのヘルパー値を設定しようとしています。サービスと価値を試してみましたが、役に立ちませんでした:

var finance = angular.module('finance', ['finance.services'])
    .value("helpers", {
        templatePath: function (name) {
            return '/areas/scripts/finance/templates/' + name + '/index.html';
        }
    })
    .config(['$routeProvider', 'helpers', function ($routeProvider, helpers) {
    $routeProvider.
        when('/', {
            templateUrl: helpers.getTemplatePath('dashboard'),
            controller: DashboardController
        })            
        .when('/people', {
            templateUrl: '/areas/scripts/app/people/index.html',
            controller: PeopleController
        })
        .otherwise({
            redirectTo: '/dashboard'
        });
}]);

私が間違っていることは何ですか?

4

3 に答える 3

43

helpers問題は、AngularJS モジュールの構成ブロックに値オブジェクトを挿入しようとしていて、これが許可されていないことです。config ブロックには、定数とプロバイダーのみを挿入できます。

AngularJS のドキュメント(セクション:「モジュールの読み込みと依存関係」) は、これについての洞察を提供します。

モジュールは、ブートストラップ プロセス中にアプリケーションに適用される構成および実行ブロックのコレクションです。最も単純な形式では、モジュールは 2 種類のブロックのコレクションで構成されます。

構成ブロック- プロバイダーの登録および構成フェーズ中に実行されます。構成ブロックに挿入できるのは、プロバイダーと定数のみです。これは、サービスが完全に設定される前に、サービスが偶発的にインスタンス化されるのを防ぐためです。

実行ブロック- インジェクターが作成された後に実行され、アプリケーションのキックスタートに使用されます。実行ブロックに挿入できるのは、インスタンスと定数のみです。これは、アプリケーションの実行時にさらにシステムが構成されないようにするためです。

于 2012-10-15T20:32:24.290 に答える
17

代わりに.valueを使用できます.constant.configその後、サービスを部分的に使用できます。

于 2012-12-23T17:42:50.287 に答える
1

ヘルパー メソッドが呼び出されtemplatePath、内部で.configas として呼び出していgetTemplatePathます。そうではありませんか:

when('/', {
            templateUrl: helpers.templatePath('dashboard'),
            controller: DashboardController
     }) 
于 2016-01-25T22:48:12.553 に答える