KnockoutJS是否提供了一些实现ViewLocator的方法?
ViewLocator类似于组件绑定,但不同之处在于它绑定到ViewModel对象并且 自动找出正确的视图来实例化和绑定。
例如我想写这个
<div data-bind="component: $data"></div>
或
<div data-bind="component: $data.DetailsViewModel"></div>
或
<div data-bind="viewLocator: $data.DetailsViewModel"></div>
我想让它找到使用命名约定并创建DetailsView.html并将其绑定到数据绑定DetailsViewModel observable。
请注意我不想指定组件名称而不必手动注册组件!
这可能吗?
答案 0 :(得分:0)
您可以通过自定义组件加载器实现它。
http://knockoutjs.com/documentation/component-loaders.html
通过自定义createViewModel使用的参数注入完整视图模型,以将其公开给视图。
<div data-bind='component: {
name: "DetailsView",
params: { injectModel: DetailsViewModel}
}'></div>