【发布时间】:2017-03-03 16:25:36
【问题描述】:
我遇到过很多示例,其中骨干视图类似于var view1 = Backbone.View.extend( { } ),但无法获得直接返回骨干视图的示例。在下面的代码中,我能够呈现模型属性的默认值并在灰尘模板中显示相同的值,但是当我执行 model.fetch() 时,在成功函数中我能够在控制台中看到 json 响应但无法将获取的值设置为模型属性并呈现新值。做,让我知道我在这里缺少什么。任何帮助表示赞赏。
define(function (require) {
'use strict';
var $ = require('jquery');
var Backbone = require('backbone');
var g = require('global/dust-globals');
var template = require('text!/dust/table1.dust');
var SampleModel = Backbone.Model.extend({
initialize: function () {
},
defaults:{
SampleUpdate:'Test date',
SampleCount: 0
},
urlRoot: "/Sample"
});
var obj1 = new SampleModel();
return Backbone.View.extend({
events: {
// 'click .search-btn': 'searchBtnClick',
},
initialize: function(){
this.testfunc();
this.render();
this.model.on("change", this.render, this);
},
render: function () {
this.$el.html(g.renderTemplate('TabView', template, {}));
//template is compiled and rendered successfully
console.log('CHECK:'+obj1.get("lastUpdate"));
return this;
},
testfunc : function () {
obj1.fetch({
success: function (response) {
console.log(JSON.stringify(response));
obj1.set("SampleUpdate", response.get("sampleUpdate"));
obj1.set("SampleCount", response.get("sampleCount"));
console.log('CHECK1:'+obj1.get("SampleUpdate"));
}
});
}
});
});
我调用上面代码的JS代码如下。
var TabView = require('/SampleTab');
return Backbone.View.extend({
initialize: function () {
this.tabView = new TabView({el: '#sample-div', model:this.model, appView: this});
this.render();
},
render: function() {
this.tabView.$el.show();
this.tabView.render();
}
});
【问题讨论】:
-
考虑改写你的问题,不清楚
-
@mikeapr4 我已经改写了这个问题.. 希望这有助于理解