2016-07-07 5 views
0

推奨部品搭載方法を使用する場合、私はこのエラーを得ているため失敗ui.routerの1.5注射をangularjs(See step 3requirejsおよびコンポーネント

Error: Module name "angular-ui-router" has not been loaded yet for context: _. Use require([]) 

アプリモジュール定義:

<script> 
    var adminApp = angular.module('adminClientApp', [require('angular-ui-router'), 'ngMaterial', 'ngResource', 'ngMessages', 'ngMdIcons']); 
</script> 

によりますスクリプトタグを含める必要はありません。requirejsを介してロードされます。

Requirejs main.jsの定義:

require.config({ 
    paths:{ 
     'angular-ui-router': 'vendor/angular-ui-router/release/' 
    }, 
    shim:{ 
     'angular': { 
      exports: 'angular' 
    } 
    } 
    }); 

アプリのレイアウト:使用しているガイドがRequireJSのために作られていません

<script data-main="main.js" src="vendor/requirejs/require.js"></script> 

答えて

1

のindex.htmlに設定

-- root 
    index.html 
    main.js 
    -- js 
     -- app (angular files here) 
      app.js 
    -- vendor (3rd party libs) 

requirejsのmain.js。そこの指示を適用した後、あなたはこのような何かをやっている:これは一般的にモジュールがすでにをロードされない限り、単一の文字列でrequireを呼び出すとを失敗したので、RequireJSで動作するように失敗します

<script> 
    var myApp = angular.module('myApp', [require('angular-ui-router')]); 
</script> 

。この呼び出しは、それがdefine内にある場合のみ動作することが保証され、次のように:

define(function (require) { 
    var myApp = angular.module('myApp', [require('angular-ui-router')]); 
}); 

このコードは、別.jsファイルに格納され、require(['module name'])をロードする必要がありモジュールです。 (このパラメータは文字列の配列であることに注意してください)これはrequireとは別の形式で、単一の文字列パラメータを使用します。

使用するガイドの作成者は彼/彼女がガイドを書いたとき、またはそれと同等のツールを使って。それ以外の場合は、RequireJSを使用するようにコードを変換する必要があります。

+0

私は見逃してしまった、すごく大きな詳細 - ルイスありがとう。その後、通常の方法でui-routerをロードします。コンポーネントがangularjsを参照していると思った: - / –

関連する問題