KnockoutJs组件 - 添加默认类

时间:2015-10-29 10:40:22

标签: javascript html knockout.js

Knockout为您提供了两种实例化组件的方法,可以使用自定义html元素,也可以使用组件绑定。

但是,在尝试设置根组件元素的样式时,我发现了一个小问题。如果您只使用自定义元素语法就好了,因为您可以只为其分配css样式 - 但是,如果您随后使用组件绑定,则css规则不匹配,因此它们会失败。

理想情况下,我想支持这两种情况,因为它们都有其用途。如果我可以通过敲除来为根组件元素添加一个类,它只是组件名称,它可以解决问题但是阅读文档并不清楚最好这样做的地方。

我已经有了一个自定义模板加载器,它从ajax调用中检索模板,但是这个模板只是根节点的内部html。

基本上我想要这个:

<my-custom-element>
...
...
<my-custom-element>

成为这个:

<my-custom-element class="my-custom-element">
...
...
<my-custom-element>

有人有任何想法吗?

1 个答案:

答案 0 :(得分:1)

您可以在组件中使用“createViewModel”方法和访问元素(例如添加一些类):

ko.components.register('some-component', {
    viewModel: {
        createViewModel: function(params, componentInfo) {
            var $element = $(componentInfo.element.children[0]);
            // some other code ...
        }
    },
    template: "<div></div>"
});
相关问题