根据我对the components feature just added in Knockout 3.2所读到的内容,这些示例假定组件的使用者指定它是什么类型。
消费者是否有某种方式可以说"组件来到这里"没有指定类型,并且组件的标识被封装在消费者视图模型的属性中?
背景
我有一个控件绑定我一直在使用:
data-bind="control: weirdEditor"
weirdEditor
observable属性必须包含一个带有ui
字符串属性的对象,该属性包含其视图的HTML。对象本身就是视图模型。 control
绑定将它们绑定在一起,并将生成的自包含UI组件插入到包含元素中。
寻找类似的模式,看起来Durandal的compose
绑定非常接近:
data-bind="compose: { model: wierdEditor, view: wierdEditor().ui() }
除了(我认为)ui
必须是基于AMD的模块系统中某些HTML资源的路径。我只是将它变为HTML字符串,我可以require
使用适当扩展的CommonJS。
优点是您可以创建通用容器(两个窗格之间的拆分器,一个选项卡系统,一个带有可编辑单元格的网格),这样容器就不会意识到它作为容器的作用。它可以包含任何内容(并且可以随时替换内容)。
答案 0 :(得分:1)
component
绑定支持using an observable for the component name。
data-bind="component: weirdEditor"