Knockout为您提供了两种实例化组件的方法,可以使用自定义html元素,也可以使用组件绑定。
但是,在尝试设置根组件元素的样式时,我发现了一个小问题。如果您只使用自定义元素语法就好了,因为您可以只为其分配css样式 - 但是,如果您随后使用组件绑定,则css规则不匹配,因此它们会失败。
理想情况下,我想支持这两种情况,因为它们都有其用途。如果我可以通过敲除来为根组件元素添加一个类,它只是组件名称,它可以解决问题但是阅读文档并不清楚最好这样做的地方。
我已经有了一个自定义模板加载器,它从ajax调用中检索模板,但是这个模板只是根节点的内部html。
基本上我想要这个:
<my-custom-element>
...
...
<my-custom-element>
成为这个:
<my-custom-element class="my-custom-element">
...
...
<my-custom-element>
有人有任何想法吗?
答案 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>"
});