backbone和marionette,ItemView不渲染,怎么办?
backbone and marionette, ItemView not rendering, how to?
由于某种原因,ItemView 未呈现。这是我的设置:
控制器
test: function () {
require(['application', 'collections/collection-test', 'views/collection/view-test'], function (App, CollectionTest, ViewTest) {
var collectionTest = new CollectionTest();
App.regionTest.show(new ViewTest({
collection: collectionTest
}));
});
},
collection 查看
define(['backbone','views/item/itemview-test'],
function (Backbone, ItemviewTest) {
'use strict';
return Backbone.Marionette.CollectionView.extend({
tagName: 'ul',
initialize: function () {},
itemView: ItemviewTest,
ui: {},
events: {},
/* on render callback */
onRender: function () {
console.log(this.$el);
}
});
});
项目视图
define(['backbone','hbs!tmpl/item/itemview-test_tmpl'],
function (Backbone, ItemviewTestTmpl) {
'use strict';
return Backbone.Marionette.ItemView.extend({
tagName: 'li',
initialize: function (options) {},
template: ItemviewTestTmpl,
ui: {},
events: {},
onRender: function () {
console.log(this.$el);
},
});
});
我可以看到 <ul></ul>
被添加到该区域,但没有看到 li
如果我用 'views/item/itemview-test'
int eh 控制器替换 'views/collection/view-test'
,我可以渲染 li
,但现在我不会得到 ul
此外,如果我 console.log(new ItemviewTest())
在 collection 中,我可以看到带有 $el:'li'
标签的 ItemView
object,但由于某些原因它未添加到 html
有什么想法吗?
为父 CollectionView
集合中的每个模型渲染一个 ItemView
。由于集合为空,因此没有要渲染的模型。
尝试添加模型:
var collectionTest = new CollectionTest([{ name: 'Patrioticcow' }]);
App.regionTest.show(new ViewTest({
collection: collectionTest
}));
由于某种原因,ItemView 未呈现。这是我的设置:
控制器
test: function () {
require(['application', 'collections/collection-test', 'views/collection/view-test'], function (App, CollectionTest, ViewTest) {
var collectionTest = new CollectionTest();
App.regionTest.show(new ViewTest({
collection: collectionTest
}));
});
},
collection 查看
define(['backbone','views/item/itemview-test'],
function (Backbone, ItemviewTest) {
'use strict';
return Backbone.Marionette.CollectionView.extend({
tagName: 'ul',
initialize: function () {},
itemView: ItemviewTest,
ui: {},
events: {},
/* on render callback */
onRender: function () {
console.log(this.$el);
}
});
});
项目视图
define(['backbone','hbs!tmpl/item/itemview-test_tmpl'],
function (Backbone, ItemviewTestTmpl) {
'use strict';
return Backbone.Marionette.ItemView.extend({
tagName: 'li',
initialize: function (options) {},
template: ItemviewTestTmpl,
ui: {},
events: {},
onRender: function () {
console.log(this.$el);
},
});
});
我可以看到 <ul></ul>
被添加到该区域,但没有看到 li
如果我用 'views/item/itemview-test'
int eh 控制器替换 'views/collection/view-test'
,我可以渲染 li
,但现在我不会得到 ul
此外,如果我 console.log(new ItemviewTest())
在 collection 中,我可以看到带有 $el:'li'
标签的 ItemView
object,但由于某些原因它未添加到 html
有什么想法吗?
为父 CollectionView
集合中的每个模型渲染一个 ItemView
。由于集合为空,因此没有要渲染的模型。
尝试添加模型:
var collectionTest = new CollectionTest([{ name: 'Patrioticcow' }]);
App.regionTest.show(new ViewTest({
collection: collectionTest
}));