2016-05-23 1 views
0

私は今、RequireJsについて学び始めましたが、その短縮形を使ってjs依存関係を読み込めません。 I私はここで間違ってやっているのか理解していない、私は唯一の「ノックアウト」を使用してノックアウトJSライブラリをロードしようとするが、それはRequireJsは名前でスクリプトをロードしません

エラーがスローされます
Error: Script error for "knockout" 
http://requirejs.org/docs/errors.html#scripterror 

私は「ノックアウト-3.4.0」を使用している場合、それは動作します罰金が、私は使用することを好むだろう短縮

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <script type="text/javascript" data-main="js/init.js" src="js/require.js"></script> 
 
\t </head> 
 
    <body> 
 
     <h1 data-bind="text: TabIndx">Hello World</h1> \t \t 
 
\t \t <script> 
 
\t \t require(['knockout', 'viewModel'], function(ko, viewModel) { 
 
\t \t \t var vm = new viewModel(); 
 
\t \t \t ko.applyBindings(vm); 
 
\t \t }); 
 
\t \t </script> 
 
    </body> 
 
</html>

require.config({ 
 
\t baseUrl: 'js', 
 
    paths: { 
 
     knockout: 'knockout-3.4.0', 
 
\t \t viewModel: 'viewModel' 
 
    } 
 
});

+0

は 'あなたが' require.configを定義しているinit.js'です'? 'init.js'の全内容を投稿できますか? – Shakespeare

答えて

1

これは、ローカルパスを要求する前にRequireJSが完全にロードされていないためです。何が必要なのですか実際にを使用している場合、RequireJSは、ビューモデルを作成し、あなたの例のようにバインディングを適用するモジュールを持っています。

// app.js 
define(['knockout', 'viewModel'], function (ko, viewModel) { 
    var vm = new viewModel(); 
    ko.applyBindings(vm); 
}); 

require.config({ 
    baseUrl: './js/', 
    paths: { 
     knockout: 'knockout-3.4.0', 
     viewModel: 'viewModel', 
     app: 'app' 
    } 
}); 

私はそれapp.jsファイルを起動するための責任が少しモジュール行ったかinit.jsに見えますが、ここではよく分かりません。

define(['app'], function (app) { 
    app.init(); 
}); 

そうのようなあなたの設定は、理想的に、require-config.jsは自分の設定スニペットが含まれている独自のファイル、にリファクタリングする必要があります: -

<script type="text/javascript" data-main="js/init.js" src="js/require.js"></script> 
<script type="text/javascript" src="js/require-config.js"></script> 
+0

ありがとう、私は今、init.jsの内部に私の設定コードを持っていたが、それは非同期ロードされ、時間内にロードされなかったので、エラーメッセージ。 – chillydk147

関連する問題