2016-09-11 2 views
0

Ember를 사용하여 <select> 상점에서 채워지는 양식을 작성하려고합니다. 여기서 "저장"기능에서 사용할 값을 복구하는 방법을 모르겠습니다.Ember : 동적 "선택"태그에서 데이터 복구

내가 뭘 잘못하고 있니?

  1. route는 differents의 모델에 액세스 :

    는 여기에 내가 무엇을의 단순화 된 버전입니다. 이 잘 작동 :

    import Ember from 'ember'; 
    export default Ember.Route.extend({ 
    
        model() { 
         var store = this.store; 
    
         return Ember.RSVP.hash({ 
          fighters: store.findAll('fighter'), 
          duels:store.findAll('duel') 
         }); 
        }, 
    
        setupController(controller, models) { 
    
         var fighters = models.fighters; 
         var duels = models.duels; 
    
         controller.set('fighters', fighters); 
         controller.set('duels', duels); 
        } 
    }); 
    
  2. 컨트롤러는 폼의 값을 사용하여 새 결투를 저장해야합니다. 양식 템플릿 표시 OK droplists

    import Ember from 'ember'; 
    export default Ember.Controller.extend({ 
    
        actions: { 
         save(formdata) { 
          var newduel = this.store.createRecord('duel', { 
            fighter1:formdata.fighter1, 
            fighter2:formdata.fighter2, 
          });    
         } 
        } 
    }); 
    
  3. 를 제출할 때 다음 "formdata는"null의 경우,하지만 난 내가하려고 어떤 ##FIGHTERn## 컨트롤러의 값에 "연결"할 수 없다!

    <form {{action "save" formdata on "submit"}}> 
    <dl> 
        <dt> 
         <select value='##FIGHTER1##'> 
          {{#each fighters as |fighter|}} 
           <option value={{fighter.id}}>{{fighter.name}}</option> 
          {{/each}} 
        </select>    
        </dt> 
    
        <dt> 
         <select value=##FIGHTER2##> 
          {{#each fighters as |fighter|}} 
           <option value={{fighter.id}}>{{fighter.name}}</option> 
          {{/each}} 
         </select> 
        </dt> 
    </dl> 
    <button type="submit">Add</button> 
    

+0

이 위대한 블로그 게시물에서보세요 당신을 도울 수 http://balinterdi.com/ 2015/08/29/how-to-do-do-a-select-drop-in-ember-20.html – kiwiupover

+0

@kiwiupover가 제공하는 링크는 선택 목록을 조작하고 저장할 데이터를 얻는 방법입니다. –

답변

3
<form {{action "save" formdata on "submit"}}> 
<dl> 
    <dt> 
     <select onchange={{action (mut fighter1) value="target.value"}}> 
      {{#each fighters as |fighter|}} 
       <option value={{fighter.id}} selected={{is-equal fighter1 fighter.id}}>{{fighter.name}}</option> 
      {{/each}} 
    </select>    
    </dt> 

    <dt> 
     <select onchange={{action (mut fighter2) value="target.value"}}> 
      {{#each fighters as |fighter|}} 
       <option value={{fighter.id}} selected={{is-equal fighter2 fighter.id}}>{{fighter.name}}</option> 
      {{/each}} 
     </select> 
    </dt> 
</dl> 
<button type="submit">Add</button> 

컨트롤러 :

import Ember from 'ember'; 
export default Ember.Controller.extend({ 

    actions: { 
     save() { 
      this.store.createRecord('duel', { 
       fighter1: scope.get("fighter1"), 
       fighter2: scope.("fighter2"), 
      }); 
     } 
    } 
});