【问题标题】:KnockoutJs Components - add default classKnockoutJs 组件 - 添加默认类
【发布时间】:2015-10-29 10:40:22
【问题描述】:

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

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

理想情况下,我想支持这两种情况,因为它们都有各自的用途。如果我可以淘汰向根组件元素添加一个类,该类只是组件名称,它将解决问题,但阅读文档并不清楚在哪里最好这样做。

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

基本上我想要这个:

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

变成这样:

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

有人有什么想法吗?

【问题讨论】:

    标签: javascript html knockout.js


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      相关资源
      最近更新 更多