主干木偶,渲染复合视图两次
Backbone Marionette, rendering composite view twice?
我有这个问题,打印用户数据两次,这是代码:
window.UserData = {}
UserData.Model = Backbone.Model.extend();
UserData.Collection = Backbone.Collection.extend({
url: '/test.php?c=userData',
model: UserData.Model,
parse: function (response) {
return response.data;
}
});
UserData.View = Backbone.Marionette.CompositeView.extend({
tagName: 'span',
template: Handlebars.compile($('#user-data-template').html())
});
BaseApp.Layout = Backbone.Marionette.Layout.extend({
template: Handlebars.compile($('#base-layout-template').html()),
regions: {
'region_user_data': '#user_data_reg'
},
initialize: function () {
_.bindAll(this);
},
onRender: function () {
var self = this;
var c = new UserData.Collection();
c.fetch({
success: function () {
var ud = new UserData.View({
collection: c
});
self.region_user_data.show(ud);
}
});
}
});
这个BaseApp布局只在一个区域(body)上渲染一次。
这是模板:
<script id='user-data-template' type='text/x-handlebars-template'>
<a href="#" id="logout"> Logout </a> Hola {{uname}}
</script>
<script id='base-layout-template' type='text/x-handlebars-template'>
base page layout
<div id="user_data_reg" class="user_data_reg"></div>
</script>
这是浏览器(chrome)显示的内容:
Logout Hola Logout Hola 14
你可以看到它显示了两次用户布局但第一次没有显示uname,这有点奇怪,因为在chrome中我有这个:
child {models: Array[0], length: 0, _byId: Object,
constructor: function, url: "http://localhost/test.php?c=userData"…}
模型只显示1,它所做的是打印两次内容。
同样,当我获取集合数据时,我这样做:
c.fetch({
success: function () {
var ud = new UserData.View({
collection: c
});
self.region_user_data.show(ud);
console.log("print xx");
}
,它只记录"print xx"一次&
为什么我得到双userData内容,即使集合只抓取一个模型,为什么会发生这种情况?问候。
这是视图类型的问题,而不是使用"CompositeView"我切换到ItemView和问题消失了。我猜木偶强迫使用ItemView单个数据
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 骨干视图触发事件两次
- 触发的事件被接收两次.如何找到鬼视图
- 主干.js绑定到集合“添加”呈现视图两次
- ng单击需要两次才能更新视图
- 为什么同一个视图在Durandal日志中导航了两次
- 为什么主干视图触发更改事件两次
- 角度 ui 路由器加载视图两次
- 如果使用 AJAX 呈现部分视图,则 Ajax.BeginForm 发布两次
- 由于 ID 更改绑定,主干视图呈现两次
- 递归自定义树视图 angularjs 指令调用 ng 单击两次
- angular ui路由器-必须点击两次才能按预期更新视图(带演示)
- 无法调用$stateProvider两次来更新视图(它只在第一次工作)
- 主干木偶,渲染复合视图两次