【发布时间】:2013-10-10 13:09:17
【问题描述】:
我正在使用 durandal 2 和breathjs。
我的数据库中有一些表,我们称它们为 table1 和 table2。
在项目中,我为 table1 创建了一个 CRUD:viewmodels/table1crud.js + views/table1crud.html viewmodel 和视图,它将使用微风连接到数据库,从 table1 获取数据,列出数据,并提供更新/删除/添加操作.
对于 table2,我可以做同样的事情,创建另一个 crud(视图/视图模型),但它可能并不优雅,特别是如果我有超过 2 个表。
所以我的想法是使用构造函数创建一个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 组合 entitycrud 和 table1 或 table2?
类似:
<div data-bind="compose : {model : 'entitycrud("table1")', view : 'views/table1'}"></div>
<div data-bind="compose : {model : 'entitycrud("table2")', view : 'views/table2'}"></div>
这个 html 代码当然行不通,我该怎么做类似的事情??
谢谢。
【问题讨论】:
标签: mvvm breeze durandal composition durandal-2.0