バックボーンビューがvar view1 = Backbone.View.extend({ })
のような例がたくさんありますが、バックボーンビューが直接返される場所を得ることはできません。以下のコードでは、モデル属性のデフォルト値をレンダリングしてダストテンプレートに表示することができますが、model.fetch()
を実行すると成功関数でコンソールでjson応答を確認できますが、モデル属性に値を取得し、新しい値をレンダリングします。私がここで逃していることを教えてください。どんな助けもありがとうございます。バックボーンmodel.fetch()コールの後でモデル属性を設定できません
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"));
}
});
}
});
});
上記のコードを呼び出すMy 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
@ mikeapr4私は質問をrewordedしました..これは理解するのに役立ちます –