2012-03-10 12 views
5

Próbuję użyć kontrolki Ember.Select, aby ustawić identyfikator powiązania w modelu. Jednak nie mogę sprawić, że kontrola przypisuje wybór do atrybutu id, a nie do całego obiektu modelu. Czy jest to zgodne z projektem w kontroli Ember.Select? Mam następujących w moim szablonu:Używanie Ember.Select do ustawiania identyfikatorów asocjacji

{{view Ember.Select 
     contentBinding="App.peopleController.content" 
     selectionBinding="App.selectedPersonController.personId" 
     optionLabelPath="content.fullName" 
     optionValuePath="content.id"}} 

Jednak nawet z wyraźnie ustalone selectionBinding przypisywać PersonID to wciąż wydaje się być wiążące do obiektu osoby. Pełna jsfiddle tutaj: http://jsfiddle.net/PXVZb/10/

+0

Wygląda na to, że to zachowanie jest przeznaczone, zobacz https://github.co m/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/controls/select.js # L37 – pangratz

+0

Tak, wygląda na to, ale zastanawiam się, dlaczego kontrolka akceptuje i parametr optionValuePath ... to wydaje się, że ten parametr nie ma wpływu, a przynajmniej nie w moim jsFiddle. –

+1

'optionValuePath' wyświetla widok' Ember.Select', która właściwość zawiera wartość wszystkich znaczników '

Odpowiedz

1

Proponuję powiązać wybraną osobę do App.selectedPersonController i utworzyć właściwość personId który wiąże się z osobami id patrz http://jsfiddle.net/PXVZb/11/

JS:

App.selectedPersonController = Ember.Object.create({ 
    personIdBinding: 'person.id' 
}); 

Kierownice:

{{view Ember.Select 
     contentBinding="App.peopleController.content" 
     selectionBinding="App.selectedPersonController.person" 
     optionLabelPath="content.fullName" }} 
Powiązane problemy