我可以用KnockoutJS实现ViewLocator吗?

时间:2016-05-04 20:26:17

标签: mvvm knockout.js

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。

请注意我不想指定组件名称而不必手动注册组件

这可能吗?

1 个答案:

答案 0 :(得分:0)

您可以通过自定义组件加载器实现它。

http://knockoutjs.com/documentation/component-loaders.html

通过自定义createViewModel使用的参数注入完整视图模型,以将其公开给视图。

<div data-bind='component: {
    name: "DetailsView",
    params: { injectModel: DetailsViewModel}
}'></div>