2014-01-23 60 views
4

我目前有問題預選多選視圖中的項目。我使用了ember-data 1.0.0 beta 6和ember-data-django-rest-adapter的ember 1.3。Ember - 使用hasMany屬性時,如何在多選中預先選擇項目?

App.Article = DS.Model.extend({ 
    title: attr(), 
    description: attr(), 
    authors: hasMany('author') 
}); 

App.ArticleRoute = Ember.Route.extend({ 
    model: function(params) { 
    return this.store.find('article', params.article_id); 
    }, 
    setupController: function(controller, model) { 
    controller.set('content', model); 
    } 
}); 

App.ArticleController = Ember.ObjectController.extend({ 
    needs: ['authors'], 
    allAuthors: function() { 
    return this.store.find('author'); 
    }.property() 
}); 

模板:

{{input authors as='select' 
    multiple='true' 
    collection='allAuthors' 
    selection='authors' 
    optionValuePath='content.id' 
    optionLabelPath='content.name'}} 

我不知道爲什麼,這是行不通的,因爲當使用#each模板I輸出allAuthors作者,我越來越我應該的數據。

有什麼我想念的嗎?

在此先感謝您的幫助。

+0

您沒有使用Ember.Select視圖的任何特定原因?它似乎更適合你想要的東西。 http://emberjs.com/api/classes/Ember.Select.html – GJK

+0

我切換到查看Ember.Select,但它的行爲方式相同。謝謝你給我另一件事嘗試。 –

+0

那麼,你遇到的問題是什麼?輸入是選擇正確的項目? – GJK

回答

0

我通常使用一個承諾預填充這種數據的途徑:

App.ArticleRoute = Ember.Route.extend({ 
    model: function(params) { 
    return this.store.find('article', params.article_id); 
    }, 
    setupController: function(controller, model) { 
    this.store.find('author').then(function(authors) { 
     controller.set('allAuthors', authors); 
     // or maybe controller.get('allAuthors').addObjects(authors); 
    }); 
    controller.set('content', model); 
    } 
}); 

App.ArticleController = Ember.ObjectController.extend({ 
    needs: ['authors'], 
    allAuthors: [] 
}); 

不知道這是要做到這一點的最好辦法,但它是爲我工作。

相關問題