5

私はノックアウト、要求、アンダースコアを使用して小さなアプリケーションを構築しようとしています。

requireを呼び出すインデックスページがあり、それはmain.jsを指しています。

require.config({

paths: {
    jquery:     'vendor/jqm/jquery_1.7_min',
    knockout: 'vendor/knockout/knockout-2.2.0',
    underscore : 'vendor/underscore/underscore_amd',
    text:       'vendor/require/text',
    templates:  '../templates'
}

});

define(['app'], function(app) {

});

私のインデックスの残りの部分には本体がありません。したがって、これがロードされると、app.jsが呼び出されます

define(['jquery','knockout', 'appViewModel'],
 function($, ko, appViewModel) 
{
    ko.applyBindings(new appViewModel());
});

次に、これは正常に機能するappViewModelを呼び出す必要があります。これは、appViewModelからテンプレートをロードしたいので、少し混乱するところです。

だから私はこのようなことをしようとしています

define(['jquery','knockout', 'text!templates/homeViewTemplate.html', 'jqm'],
function($, ko, homeViewTemplate) {

      //call and load in template

});

これは私が少し立ち往生しているところです私はバックボーンで知っています例えば私は使うことができます

  template:_.template(homeViewTemplate)

しかし、ここにテンプレートをロードする最良の方法は本当にわかりません

https://github.com/ifandelse/Knockout.js-External-Template-Engineを見てきましたが、これはrequireではうまく機能しません。requireなしで使用し、htmlファイルにテキストを入れて呼び出すだけです。 jQuery mobileを使用すると、クラスなどが追加されません。

誰かが私を正しい方向に向けることができるかどうか疑問に思いました..私は本当にここにどのコードを入れるべきかを考え出そうとしていると思います

    define(['jquery','knockout', 'text!templates/homeViewTemplate.html', 'jqm'],
function($, ko, homeViewTemplate) {

      //call and load in template

});

homeviewtemplateを呼び出します。

ありがとう

4

1 に答える 1

2

jQuery を使用してテンプレート HTML をページに挿入し、Knockout バインディングを適用します。

$('#selector').append(homeViewTemplate);
ko.applyBindings(VIEWMODEL, $('#selector')[0]);

高度なノックアウト バインディングに関する私の WIP 記事にも興味があるかもしれません。

于 2012-11-19T21:36:04.640 に答える