将Knockout组件中的参数作为AMD模块传递

时间:2015-08-28 06:43:32

标签: javascript knockout.js amd

我的tagname组件如下所示,当组件注册为单个AMD模块时,我想获得所有参数。

ko.components.register('tagname', { 
  synchronous: true,
  require: params.url
});
<tagname params="url: 'some/relative/url'"></tagname>

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您为视图模型(或createViewModel工厂)提供的功能将接收所有参数。例如:

define(['knockout', 'text!./my-tagname.html'], function(ko, templateString) {
    function MyTagNameComponent(params) {
        // do something with params here
    }

    return { viewModel: MyTagNameComponent, template: templateString };
});

因此,在这种情况下,您的组件将接收其参数作为MyTagNameComponent的第一个参数。

以下是一个示例:http://jsfiddle.net/rniemeyer/g7zhjfz1/