我是SPA的新骨幹,我試圖通過使用backbone和requireJs來開發一個小應用程序。如何擴展骨幹視圖
我面臨的問題是我無法通過傳遞集合來擴展視圖。
好了,這是名稱的觀點MenuView.js
define([
'Backbone'
], function (Backbone) {
var MenuView = Backbone.View.extend({
tagName: 'ul',
render: function() {
_(this.collection).each(function (item) {
this.$el.append(new MenuListView({ model: item }).render().el);
}, this);
return this;
}
});
return new MenuView;
});
,這是router.js其中錯誤出現
define([
'Underscore',
'Backbone',
'views/menu/menuView',
'views/createNew/createNew',
'collections/menu/menuCollection',
], function (_, Backbone, MenuView, CreateNewView,Menucollection) {
var AppRouter = Backbone.Router.extend({
routes: {
'index': 'index',
'action/:Create': 'Create'
},
index: function() {
CreateNewView.clear();
//----------- HERE IS THE PROBLEM ------------
$('#menu').html(MenuView({ collection: Menucollection.models }).render().el);
},
Create: function() {
CreateNewView.render();
}
});
var initialize = function() {
var appRouter = new AppRouter();
Backbone.history.start();
appRouter.navigate('index', { trigger: true });
};
return {
initialize: initialize
};
});
該錯誤消息「對象不是一個功能」。我同意這一點,因爲MenuView不是一個函數。我試圖擴展MenuView(MenuView.extend({collection:Menucollection.models})),錯誤消息是「objet [object,object]沒有方法擴展」。
我想,我試圖做到這一點的方式,是遠離正確的。
任何人都可以建議如何做到這一點?
感謝
感謝您的回答約翰。這工作! – StrouMfios