2013-09-22 37 views
0

在ember-data v0.14(pre beta)中。您可以簡單地擴展模型功能以添加額外的api調用,例如對帖子進行投票。在ember-data 1.0.0-beta中擴展ApplicationAdapter

// ember-data v0.14 
App.Post.reopenClass({ 
    vote: function(post_id) { 
    return console.log('vote'); 
    } 
}); 

但是在ember-data beta之後,這不再起作用。所以我認爲放這個代碼的最好的地方在App.PostAdapter。但是,當我試圖從App.ApplicationAdapter.extend延伸它沒有工作。

// ember-data beta (doesn't work) 
App.PostAdapter = App.ApplicationAdapter.extend({ 
    vote: function(post_id) { 
    return console.log('vote'); 
    } 
}); 

關於我在做什麼錯的任何想法?如果你有更好的建議,我應該在哪裏放這些電話,我真的很感激。在此先感謝

回答

2

您應該只能在正常的類定義中使用該方法(使用extend),然後在任何活動對象上調用該方法。

App.Post = DS.Model.extend({ 
    vote: function(post_id) { 
    return console.log('vote'); 
    } 
}); 

然後在其他地方,說你PostController,你有這樣的事情(假設你的​​是做正常的事情):

App.PostController = Ember.ObjectController.extend({ 
    actions:{ 
    recordVote : function(){ 
     this.get('content').vote(); 
    } 
    } 
}); 
+1

這裏有一個JSBin顯示內容:HTTP:// jsbin .com/ucanam/1158 /編輯 – Bead

+0

它的工作,謝謝:) –