根据我对knockoutjs文档和其他材料的理解,通常的做法是Views
(包括嵌套的那些)绑定到ViewModel
'添加/删除'{{1通过切换显示和可见性等css属性来完成。
但是当意图实际添加/删除作为knockoutjs模板或组件的DOM元素时,常见/最佳实践是什么?
如何将HTML插入目标视图?如果它不是自动的,应如何执行重新绑定?
答案 0 :(得分:2)
您可以使用“if”绑定,与“visible”不同,它实际上会添加/删除DOM中的元素。
答案 1 :(得分:0)
负责展示组件的“视图层”示例。
<强>模板强>
<!-- ko if: componentName -->
<div data-bind="component: { name: componentName, params: componentParams }"></div>
<!-- /ko -->
查看模型
function LayerViewModel() {
if (!(this instanceof LayerViewModel)) {
return new LayerViewModel();
}
var self = this;
this.componentName = ko.observable(null);
this.componentParams = ko.observable(null);
this.showView = function (componentName, componentParams) {
self.componentName(componentName);
self.componentParams(componentParams || {});
};
this.dismissView = function () {
self.componentName(null);
self.componentParams(null);
};
}
您与此图层的沟通方式取决于您。我通常使用信号。