Wie binden Wert form input select-Attribut im controller
Ich versuche, eine Bindung mit dem Wert aus dem input select-Attribut "selectedValue" im controller.
Dies ist app.js
Food = Ember.Application.create();
Food.appsController = Ember.Object.create({
selectedValue: ""
});
Food.Todo = Ember.Object.extend({
title: null,
value: null
});
Food.FoodController = Ember.ArrayProxy.create({
content: []
});
Food.FoodController.pushObject(Food.Todo.create({title:"a", value:"1"}));
Food.FoodController.pushObject(Food.Todo.create({title:"b", value:"2"}));
Food.FoodController.pushObject(Food.Todo.create({title:"c", value:"3"}));
Dies ist index.html
{{#collection
contentBinding="Todos.todosController"
tagName="select"
itemClassBinding="content.isDone"}}
{{content.title}}
{{/collection}}
Ausgabe wie folgt Aussehen
<select id="ember180" class="ember-view">
<option id="ember192" class="ember-view">
<script id="metamorph-0-start" type="text/x-placeholder"></script>
a
<script id="metamorph-0-end" type="text/x-placeholder"></script>
</option>
<option id="ember196" class="ember-view">
<script id="metamorph-1-start" type="text/x-placeholder"></script>
b
<script id="metamorph-1-end" type="text/x-placeholder"></script>
</option>
<option id="ember200" class="ember-view">
<script id="metamorph-2-start" type="text/x-placeholder"></script>
c
<script id="metamorph-2-end" type="text/x-placeholder"></script>
</option>
</select>
Ich habe keine Ahnung, wie Sie Wert hinzufügen, um die option und wie verbindlich gewählten Wert zurück zu controller.
Ist das möglich zu tun, Emberjs?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ember hat jetzt eine built-in Wählen Sie " Ansicht.
Finden Sie in der neuesten Ember.js hier bauen: http://cloud.github.com/downloads/emberjs/ember.js/ember-latest.js
Hier ist ein Beispiel für die Benutzung:
Ihre Vorlage Aussehen würde:
Wieder, hier ein jsFiddle Beispiel: http://jsfiddle.net/ebryn/zgLCr/
Ember.Select
ist jetzt veraltet. Was ist der aktualisierte Weg, dies zu tun?Springen aus von der Lösung für @pangrantz, diese Geige Beispiel (http://jsfiddle.net/bsyjr/) zeigt einige Verbesserungen: Der LENKER, der code ist sauberer, die durch die Nutzung der tagName. Wenn tagName auf "wählen", das untergeordnete Ansichten automatisch auf "option" - Elemente. Siehe die Glut.CollectionView.CONTAINER_MAP in https://github.com/emberjs/ember.js/blob/master/packages/ember-views/lib/views/collection_view.js zu verstehen, warum. Auf der Javascript-Seite, indem Sie eine itemViewClass, können wir hinzufügen, das value-Attribut des option-Elements.
Gibt es noch Raum für Verbesserungen in der event-handling, das nicht durch Glut-Ereignis-framework, und es würde sehr viel Sinn machen, um eine benutzerdefinierte geschrieben SelectView nicht nutzen LENKER, da IMO es ist bedenklich, wie viel Wert LENKER fügt in diesem Fall.
{{#collection}}
Helfer ist veraltet, wie die gleichen Ergebnisse erzielt werden können, mit größerer Klarheit über{{#each}}
wie @pangratz hat.{{#collection}}
nützlich ist. Allerdings würde ich versuchen, mit{{#each}}
erste und wenn es Ihnen nicht gelingt, die Ergebnisse, die Sie wollen, dann betrachten Sie{{#collection}}
wir planen weitere Verbesserungen zu erzielen, um{{#each}}
für weitere Fälle.Mithilfe einer benutzerdefinierten Ember.Funktioniert für mich, aber ich denke, es ist eine bessere Lösung...
Siehe Beispiel arbeiten ist diese Geige http://jsfiddle.net/pangratz/hcxrJ/
LENKER:
app.js:
Ich bin mir nicht sicher, ob dies ist der Einsatz für andere, aber ich habe etwas ähnliches auf der Grundlage der Antworten hier, und dieses SelectView, dass, sollte in diesem Zusammenhang auch. Es bindet an 'change', Werke aus der Ansicht, dass die derzeit ausgewählt ist, und dann tut etwas mit seinem Inhalt.
Diese Weise werden Sie in der Lage, übergeben, um ein Objekt herum, anstatt den index der wählen Sie.