0

在 Backbone.js 中,如何在获取完成后检索模型函数返回的可验证性?据我了解,模型无法与视图通信,那么视图如何监听模型特定的函数获取?

谢谢!

我的尝试可以在下面看到(如果你看到代码错误,不要介意,我写这个作为我正在尝试做的一个例子):

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());
    }
});
4

2 回答 2

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模型的获取完成。

于 2013-10-17T11:56:34.740 回答
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

但在我的应用程序中,我没有这样做。访问模型内​​部的视图将破坏主干的目的。

于 2013-10-17T13:38:06.173 回答