0
我想了解如何處理我的Backbone模型中的集合實例數量。將會有一個主要模型,該模型由多個集合實例組成。收藏本身是其他一些模型的組合。訪問和維護模型中的固定數組集合
- 模型A
- 收集乙
- 模型C
- 模型C
- 收集乙
- 模型C
- 模型C
- 模型C
- 收集乙
- 模型C
- 收集乙
might even be empty but will only add more Model C's
- 收集乙
這裏是不工作的代碼...
app.js
(function() {
var App = {};
window.App = App;
var template = function(name) {
return Mustache.compile($('#'+name+'-template').html());
};
App.World = Backbone.Model.extend({
initialize: function() {
var this.continent = new Array();
this.continent[0] = new App.Continent(0);
this.continent[1] = new App.Continent(1);
this.continent[2] = new App.Continent(2);
this.continent[3] = new App.Continent(3);
this.continent[4] = new App.Continent(4);
this.continent[5] = new App.Continent(5);
}
});
App.Continent = Backbone.Collection.extend({
initialize: function(id) {
switch (id) {
case 0:
this.id = "Europe";
case 1:
this.id = "Asia";
case 2:
this.id = "Africa";
case 3:
this.id = "Australia";
case 4:
this.id = "South America";
default:
this.id = "North America";
}
}
});
App.Index = Backbone.View.extend({
template: template('index'),
initialize: function() {
this.world = new App.World();
this.world.on('all', this.render, this);
},
render: function() {
this.$el.html(this.template(this));
return this;
},
bigland: function() {
return this.world;
},
});
App.Router = Backbone.Router.extend({
initialize: function(options) {
this.el = options.el
},
routes: {
"": "index"
},
index: function() {
var index = new App.Index();
this.el.empty();
this.el.append(index.render().el);
}
});
App.boot = function(container) {
container = $(container);
var router = new App.Router({el: container})
Backbone.history.start();
}
})()
的index.html
<!DOCTYPE html>
<html>
<head></head>
<body>
<h1>Hello world</h1>
<div id='app'>
Loading...
</div>
<script type="text/x-mustache-template" id="index-template">
<ul>
{{#bigland}}
<li>Hello {{.continent}}</li>
{{/bigland}}
</ul>
</script>
<script src="jquery.js"></script>
<script src="underscore.js"></script>
<script src="backbone.js"></script>
<script src="mustache.js"></script>
<script src="app.js"></script>
<script>$(function() { App.boot($('#app')); });</script>
</body>
</html>
我想從這個演示,得到輸出
- 你好歐洲
- 你好亞洲
- 你好非洲
- 你好澳大利亞
- 你好南美
- 你好北美
問題:
- 我如何獲得此代碼使用與多個實例的模型工作集合。
- 這個模型有沒有更好的方法構造?我很樂意爲嵌套模型使用主幹插件,但希望看到一些工作代碼。
- 下一級實驗是使集合B的某些實例專門化並使用不同的業務規則。關於如何組織這個混亂的任何想法,如何把輔助方法放在哪裏?任何關於邏輯所在的地方的最佳做法,我可以將它放在主模型A中,在B集合中或其他地方?