0

我想從集合中獲取id以傳遞給視圖。我能夠獲取模型的信息,但無法獲取視圖來獲取數據。從模型傳遞ID來查看Backbone.js

在我的模板每一行都有模型ID:

<td><a href="#/process/<%= model.id %>"><%= model.name %></a></td> 

我的路由器是這樣的:

var Router = Backbone.Router.extend({ 
routes: { 
    '': 'welcome', 
    'process/:id': 'process' 
} 

}); 

var router = new Router(); 

router.on('route:process', function(id) { 
    console.log('home page loaded'); 
    console.log(id); 
    var processing = new Processes({id:id}); 
    processing.fetch({ 
    success: function(model,response){ 
     console.log(model.where({'id':id})) 
    } 
}) 
processView.render({id: id}); 
}); 

正確的ID來了通過,但我無法獲取視圖檢索ID。

這是使用Backbone.js的

+2

'fetch'是一個AJAX調用,所以只有觸發'success'回調之後,模型纔會出現。 – 2015-03-30 21:53:21

回答

1

的ID /模型屬性將不會提供給你,直到取回(http://backbonejs.org/#Model-fetch)方法調用返回的,因爲它是一個Ajax調用異步完成了我的第一個項目。

因此,在從服務器獲取數據之後需要發生的所有操作都應置於成功/錯誤(用於錯誤處理)回調之內。

在你的情況下,渲染視圖的調用應該作爲bel在成功回調中移動。

processing.fetch({ 
    success: function(model,response){ 
     console.log(model.where({'id':id})) 
     processView.render({id: id}); 
    } 
});