Mvvm durandal:一个视图模型的多个视图
我和durandal 2和breezejs一起工作 我的数据库中有一些表,我们称它们为table1和table2 在这个项目中,我为table1创建了一个CRUD:Mvvm durandal:一个视图模型的多个视图,mvvm,breeze,durandal,composition,durandal-2.0,Mvvm,Breeze,Durandal,Composition,Durandal 2.0,我和durandal 2和breezejs一起工作 我的数据库中有一些表,我们称它们为table1和table2 在这个项目中,我为table1创建了一个CRUD:viewmodels/table1crud.js+views/table1crud.htmlviewmodel和view,它将使用breeze连接到数据库,从table1获取数据,列出数据,并提供更新/删除/添加操作 对于表2,我可以做同样的事情,创建另一个crud(视图/视图模型),但它可能并不优雅,特别是如果我有两个以上的表 因此
viewmodels/table1crud.js
+views/table1crud.html
viewmodel和view,它将使用breeze连接到数据库,从table1获取数据,列出数据,并提供更新/删除/添加操作
对于表2,我可以做同样的事情,创建另一个crud(视图/视图模型),但它可能并不优雅,特别是如果我有两个以上的表
因此,我的想法是创建一个带有构造函数的entitycrud
viewmodel:
define(function(require){
var vm= function(entityType){
this.entityType= entityType;
this.activate = function(){...};
this.attached = function(){...};
etc ...
this.createEntity = function(){...};
etc ...
};
return vm;
});
加上多个视图views/table1.html
和views/table2.html
因此,我的问题是:是否有任何方法可以使用构造函数中的entityType使用table1
或table2
组合entitycrud
比如:
<div data-bind="compose : {model : 'entitycrud("table1")', view : 'views/table1'}"></div>
<div data-bind="compose : {model : 'entitycrud("table2")', view : 'views/table2'}"></div>
这个html代码当然不会工作,我怎么能做类似的事情
谢谢。您可以在另一个视图模型中拥有一个具有如下正确值的属性(比如cruds模型) 然后在cruds.html视图中像这样进行组合绑定
<div data-bind="compose : {model : crudTable1, view : 'views/table1'}"></div>
<div data-bind="compose : {model : crudTable2, view : 'views/table2'}"></div>
您可以在另一个视图模型中拥有一个具有如下正确值的属性(比如cruds模型) 然后在cruds.html视图中像这样进行组合绑定
<div data-bind="compose : {model : crudTable1, view : 'views/table1'}"></div>
<div data-bind="compose : {model : crudTable2, view : 'views/table2'}"></div>