2013-03-03 4 views
5

で定義されていません。koが、私は道以下でknockoutjsをロードするためにrequirejsを使用しようとしているrequirejs

require.jsは、上部のスクリプトタグを使用してロードされ
<script type="text/javascript"> 
    require(['scripts/knockout-2.2.1.debug'], function() { 
     var someModel = { 
      firstname: ko.observable('asd') 
     }; 
     ko.applyBindings(someModel); 
    }); 
</script> 

。 このコードを実行すると、定義されていないエラーが発生します。同様のことをする正しい方法は何ですか?

+2

を '関数(KO){.....' – HungryCoder

+0

おかげHungryCoderについて...それは問題を解決する方法:あなたはjQueryとノックアウトをロードした場合、例えば以下のように、あなたはそれを書くことができます。 Unforunately私は答えとしてコメントをマークすることはできませんが、それはです。 – helloworld

+0

ちょうど興味があります - 下のロジックは何ですか?私が必要とする4つのライブラリを含めると、それらを使用するために4つのパラメータを追加する必要がありますか?また、ページに2つのスクリプトタグを含めると、requirejsとknockoutjsの2つのスクリプトタグ(同じ順序とページ上の他のコードなし)がエラーになります。 requirejを追加するだけで、それは他のスクリプトタグと競合しますか? 私の問題は解決しましたが、誰かが私の混乱を解消できれば素晴らしいです。 – helloworld

答えて

5
require(['scripts/knockout-2.2.1.debug'], function(ko) { 

は私はわからないけどrequirejs上の例を見て、私は、これらがそのコールバック関数のスコープ内にロードされていると思います。だから、それをあなたの関数で受け入れない限り、それを使うことはできません。

はい、あなたは正しいです(少なくとも、その例を見てください)。 4つのライブラリを含める場合、4つのパラメータを受け入れる必要があります。

require(['scripts/jquery.js', 'scripts/knockout-2.2.1.debug'], function($, ko) { 
関連する問題