我使用MVC的實現爲我的客戶端JavaScript。Javascript客戶端MVC渲染責任
我有一個Table
模型,其中包含一個模型的數組。每個型號都有相應的視圖TableView
和RowView
。
var Table = function() {
this.rows = [];
}
將表格渲染到DOM的責任駐留在TableView
類型中。這接受Table
模型作爲構造函數參數。
要渲染本身它遍歷的 S IN的rows
「實例變量」,newing爲每個一RowView
,傳入的當前行模型並調用呈現關於像這樣的視圖:
var TableView = function(tableModel) {
this.$el = $("#myTable");
this.model = tableModel;
this.render = function() {
_.each(this.model.rows, function(row) { this.$el.append(new RowView(row).render()); });
}
}
這是有效的,但感覺不對,因爲知道渲染的RowView
的確切類型與表視圖相關。如果我想要另一種類型的RowView
- 比如RowView2
,呈現略有不同,那麼我需要在TableView
渲染函數中使用明確的條件。
如何更改此實現以啓用表格行的多態呈現 - 或者是我的實現完全錯誤,並且有更好的方法?
感謝您的鏈接。看起來很有趣。 – Ben 2012-07-20 11:24:52