淘汰组件小部件模板requirejs html

时间:2015-02-16 16:48:58

标签: javascript html knockout.js requirejs

即时实现淘汰的小部件示例 http://knockoutjs.com/documentation/component-overview.html

从外部html加载模板,requirejs不适合我

ko.components.register('like-or-dislike', {
template: { require: 'text!files/component-like-widget.html' }

});

我把包含模板的html放在外部html中。 替换"文件/"与我的相对路径" / views / _leyout" 而且它不起作用 我需要一个加载html的text.js文件? 任何一个例子?

2 个答案:

答案 0 :(得分:3)

user3144678 的答案是正确的。您应该在项目中包含text plugin。只是为了澄清如何使用它我做了一些简单的项目:

项目结构:

project
|-- index.html
|-- app.js
`-- content
    `-- some-content.html

的index.html:

<html>
    <head>
    </head>
    <body>
        <script data-main="app.js"src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.22/require.js"></script>
   </body>
</html>

app.js:

requirejs.config({
    paths: {
        "text": "http://cdnjs.cloudflare.com/ajax/libs/require-text/2.0.12/text"
    }
});
requirejs(["text!content/some-text.html"], function (text) {
   alert(text);
});    

一些-content.html:

<div>just some text</div>

结果将提醒&#34;只是一些文字&#34;内部。

答案 1 :(得分:1)

“text.js”是一个可以从require-homepage下载的插件。对我来说,为knockout-components执行配置的最佳方法如下:

config.js

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

    ko.components.register('component-name', { require: 'components/viewmodels/component-name' });

});

组件name.js

define(['ko', 'text!components/templates/component-name.html'],function (ko, template) {

    var vm = function (params) {

    };

    return {
        viewModel: vm,
        template: template
    };

});

希望有所帮助:)