Firebase、キャラクター、呪文に引っ掛けられた ember データ モデルがあります。新しいモデルを作成して、firebase に保存できます。次に、キャラクターに呪文を追加したいと思いました。キャラクターには多くの呪文があると定義しました。
export default DS.Model.extend({
chClass: DS.attr(),
chName: DS.attr(),
chImage: DS.attr(),
chSpells: DS.hasMany('spell', {async: true}),
});
私のhbsでは、<select>
要素に呪文をリストしました。入力フィールドと追加ボタンもあります。
Add new character <br>
name {{input value=mchName }}<br>
class {{input value=mchClass }}<br>
image {{input value=mchImage }}<br>
<br>
Choose Spells:<br>
<select name="spellslist" multiple>
{{#each spells as |spell index|}}
<option value="{{index}}">{{spell.spName}}</option>
{{/each}}
</select>
<button {{action 'addChar' spells}}>add</button><br>
したがって、ユーザーがキャラクター名、レベルを入力し、いくつかの呪文を選択すると、追加ボタンで addChar アクション関数を呼び出して、このデータを渡します。
export default Ember.Controller.extend({
mchName:'',
mchClass:'',
mchImage:'',
store: Ember.inject.service(),
actions: {
addChar: function(spells) {
var newChar = this.store.createRecord('character');
newChar.set("chName", this.mchName);
newChar.set("chClass", this.mchClass);
newChar.set("chImage", this.mchImage);
newChar.get("chSpells").addObject(?????? how to get spell here ?????);
newChar.save();
入力から文字列を渡す方法は知っていますが、選択した呪文をこの関数に渡す方法がわかりません。