2014-01-09 3 views
0

두 모델 (usersubject)을 사용하는 엠버 응용 프로그램이 있습니다. 각 사용자는 그들과 관련된 많은 주제를 가지고 있습니다. 나는 새로운 사용자의 세부 사항, 즉 이름, 이메일 주소 및 관련 주제를 입력 할 수있는 사용자/템플릿을 만들었습니다. 주제는 주제 제어기에서 주제에 의해 구동되는 선택란 값 목록에서 선택됩니다. 내 문제는 내가 저장을 클릭하면 컨트롤러가 주제 선택을 건너 뛰고 JSON 페이로드에 추가하지 않는 것입니다. 누구든지 도와 줄 수 있습니까?에버 확인란에서 양식 데이터를 가져 오는 방법

템플릿 만들기 :

<script type = "text/x-handlebars" id = "user/create"> 
<div class="modal fade" id="createModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
     <h4 class="modal-title">New User</h4> 
     </div> 
     <div class="modal-body"> 
<div class = "input-group"> 
<form> 

    <h5>First Name</h5> 
    {{input value=firstName}} 

    <h5>Last Name</h5> 
    {{input value=lastName}} 

    <h5>Email</h5> 
    {{input value=email}} 

    <h5>Subjects</h5> 

{{#each subject in subjects}} 
    <label> 
     {{view Ember.Checkbox Binding="id"}} 
     {{subject.name}} 
    </label><br /> 
{{/each}} 

</form> 
</div> 
     </div> 
     <div class="modal-footer"> 

     <a {{action close target="view"}} href="#" class="btn btn-default">Cancel</a> 
     <a data-dismiss="modal" {{action "save"}} class="btn btn-primary">Save changes</a> 

     </div> 
    </div><!-- /.modal-content --> 
    </div><!-- /.modal-dialog --> 
</script> 

UserCreateView :

App.UserCreateView = Ember.View.extend({ 
    didInsertElement:function(){ 
    $('#createModal').modal('show'); 
    var self = this; 
    $('#createModal').on('hidden.bs.modal', function (e) { 
    self.controller.transitionToRoute("users"); 
}); 
    }, 
    actions:{ 
    close:function(){ 
     this.$(".close").click(); 

    }, 
    save: function(){ 
     alert('(in view) saved in view'); 
     this.controller.send("save"); 
     self.controller.transitionToRoute("users"); 
     this.$(".close").click(); 
     $('#createModal').modal('hide'); 

    } 
    }, 
)}; 

CreateController를 :

App.UsersCreateController = Ember.ObjectController.extend({ 
     subjects: function() { 
    return this.store.find('subject'); 
    }.property(), 

     actions: { 

     save: function(){ 
      alert('(UsersCreateController) SENDING A POST REQUEST'); 
      var newUser = this.store.createRecord('user', this.get('model')); 
      console.log("newUser", newUser); 
      newUser.save(); 

      this.transitionToRoute('users'); 
      $('#createModal').modal('hide'); 
     } 
     } 
    }); 

답변

2

내가 보는 것이 첫 번째 것은 당신이 당신의 체크 박스를 사용하는 바인딩 속성 (이다 es). 이 아닌 경우 -checkbox 또는 {{input}}의 경우 value 속성을 통해 바인딩합니다. BUT - 확인란의 경우 "checked"속성에 바인딩해야합니다.

http://emberjs.com/guides/templates/input-helpers/에서 봐 - 약 반쯤 체크 박스에서 더 많은 정보를 원하시면,이 허용 속성을 보여줍니다 등이 특징

내가 같은 문제가 발생 :

{{input type="checkbox" class="input-small" id="inputCache" value=cache}} 

을하지 않았다은 checkbox-values를 submit (다른 값이 전달되고 잘 유지됨)을 처리하는 액션에 전달하는 것과 관련하여 작동합니다. 반면에 단순히 속성을 this로 변경하는 것과 같습니다.

{{input type="checkbox" class="input-small" id="inputCache" checked=cache}} 

전체 문제가 해결되었습니다.

잘하면이 트릭을 할 것입니다. 행운을 빌어 요 :-)

관련 문제