在Backbone.js中,如何在fetch完成后检索模型函数返回的可验证值?据我所知,模型无法与视图进行通信,那么视图如何监听模型特定的函数获取?
谢谢!
我尝试这样做可以在下面看到(如果你看到代码错误,不介意它们,我写这个作为我正在尝试做的一个例子):
var ScheduleModel = Backbone.Model.extend({
urlRoot: '/api/schedule/1',
getSubjectData: function(){
this.fetch({
success: function(data, scheduleData){
return scheduleData;
}
});
}
});
var ScheduleView = Backbone.View.extend({
initialize: function(){
console.log(this.model.getSubjectData());
}
});
答案 0 :(得分:3)
您可以使用listenTo
收听多个模型事件:
http://backbonejs.org/#Events-listenTo
因为model.fetch
触发“更改”事件(http://backbonejs.org/#Model-fetch)在您的视图代码中有些类似:
var ScheduleView = Backbone.View.extend({
initialize: function(){
console.log(this.model.getSubjectData());
this.listenTo(this.model, 'change', this.doSmthng);
},
doSmthng: function () {
// ....
}
});
应该触发doSmthng
模型的提取完成。
答案 1 :(得分:1)
您可以在此处查看fetch
内部视图。
var ScheduleView = Backbone.View.extend({
initialize: function(){
this.model.fetch({success: function() {
//you can do your stuff here.
//Try to get model data using `model.get`.
}});
}
}
和
As I understand the model cannot communicate with the view.
这是错误的。您可以在view
。
this.model.view = this;
您可以像这样访问模型中的视图。
this.view
但在我的应用程序中,我不是这样做的。访问模型内部的视图将破坏主干的目的。