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

});

调用 homeview 模板。

谢谢

4

1 回答 1

2

我使用 jQuery 将模板 HTML 插入到页面中,然后应用我的 Knockout 绑定。

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

您可能还对我关于高级敲除绑定的 WIP 文章感兴趣。

于 2012-11-19T21:36:04.640 回答