javascript - KnockoutJs 组件 - 添加默认类

标签 javascript html knockout.js

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

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

理想情况下,我想支持这两种情况,因为它们都有各自的用途。如果我可以通过 knockout 将一个类添加到根组件元素(这只是组件名称),它将解决问题,但阅读文档并不清楚最好在哪里执行此操作。

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

基本上我想要这个:

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

变成这样:

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

有人有什么想法吗?

最佳答案

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

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

关于javascript - KnockoutJs 组件 - 添加默认类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33411983/

相关文章:

html - 用于 HTML 表格的错误 CSS

html - 禁用 Android 浏览器(WebKit 的)输入焦点发光

javascript - 无法让我的数据绑定(bind)与 knockoutJS 一起工作

javascript - 使用鼠标选择表中包含数字的 Div 并求和

c# - 如何在我的 MVC 应用程序中打开文本文件?

javascript - 您可以单独使用条件三元运算符吗? (javascript)

javascript - WWW::Scripter 作为父类导致奇怪的错误消息

javascript - Razor 转义数据属性中的单引号

javascript - 在 KnockoutJS 的 View 中处理不存在的 observableArray 属性

JavaScript 正则表达式匹配将输入返回为前 2 个索引