Backbone - 检查行是否返回并加载到模型

时间:2013-10-04 18:29:28

标签: backbone.js

我有一个叫做游戏的模型。在路由器中我做:

            var game = new models.Game({game_id:game_id,team_id:team_id});
            game.fetch({
              success: function (data) {
                    slider.slidePage(new Game({model:data}).$el);
                }
           });

然后在游戏视图中我想确定数据库是否返回任何内容。最好的方法是什么?我有一刻:

    initialize: function (options) {
       if(this.model){
           console.log('in the if');
       }
       else{
           console.log('in the else');
       }
    }

但即使数据库没有返回任何行,这也总会进入if ...

1 个答案:

答案 0 :(得分:0)

也许您想要检查id属性,理论上只有服务器应该知道。 (或者,使用Model.has("game_name")检查名称等必需属性。)

if(typeof this.model.id != "undefined") {
       console.log('in the if');
   }

或者,您可能需要考虑让服务器返回类似“404 not found”的HTTP代码,以表示没有数据。这样,您可以确保success回调始终具有数据,并处理error回调中的无数据方案。