2016-12-02 1 views
0

Ember 2.5.0을 사용하고 있습니다. 내 응용 프로그램에서는 ember-select-list 플러그인을 사용하여 드롭 다운 페이지를 만들었습니다.Ember가 드롭 다운 값을 유지할 수 없습니다.

드롭 다운을 렌더링 할 수 있지만 드롭 다운 값을 유지할 수 없습니다. 내가 값을 선택 할 때마다, 나는 크롬 콘솔에서 다음과 같은 예외가 점점 오전 :

어설 션 실패 : 호출 할 수 없습니다 것은 정의되지 않은 객체에 'ID'로 얻을 것은

를 들어, 다음 코드를 찾아주세요 참조 :

템플릿 :

{{select-list content=roles 
       optionValuePath="role" 
       optionLabelPath="role" 
       value=role 
       action=(action (mut role))}} 

Route.js I 대신 modelArray(roles: this.store.findAll("role").toArray()) 통과

export default Ember.Route.extend({ 
    model(){ 
     return Ember.RSVP.hash({ 
     books : this.store.findAll("book"), 
     roles : this.store.findAll("role") 
    }); 
}, 
setupController(controller,model){ 
    controller.set('users',model.books); 
    controller.set('roles',model.roles); 
} 
}); 

모델 라우터

export default DS.Model.extend({ 
    role:DS.attr() 
}); 

는 I의 값을 유지할 수 있지만, 모델 전달 동안 에러가 발생.

누구든지이 문제를 해결할 수 있도록 도와 주시겠습니까?

답변

1
ember-select-list documentation

unit testarray{{select-list}} 도우미에 content 속성에 대해 필요하다는 것을 나타냅니다.

hashobject을 예상하고 반환하므로이 경우에 Ember.RSVP.hash이 실패하는 것입니다.이 유형은 ember-select-list가 사용하도록 구성되지 않은 유형입니다.

대신 을 사용해야합니다. all은 예상 할 수 있으며 array을 반환해야하므로 제대로 작동합니다.

설명하기 위해 Ember Twiddle example을 만들었습니다. 난 당신이 ember-power-select을 사용하는 것이 좋습니다 것

<select onchange={{action "selectRole" value="target.value"}}> 
    {{#each roles as |role| }} 
    <option value="{{ role }}" label={{ role }}> 
     {{ role }} 
    </option> 
    {{/each}} 
</select> 
+0

를 작동하지 않는 경우

setupController(controller,model){ controller.set('users',model.books); controller.set('roles',model.roles.toArray()); } 

이 알려 그러나 RSVP.hash 안에 내가 2Models 일했습니다 책의 모델이며, 다른 하나는 역할 I입니다 역할 만 book이 아닌 배열이되기를 바란다. 또한 select 드롭 다운을 만드는 다른 쉬운 방법이있다. 기본 HTML 폼 요소에 ember가 왜 그렇게 어려운지 모르겠다. – VelNaga

+0

'books '를 아주 쉽게 추가 할 수 있습니다. Twiddle 예제를 주석으로 업데이트했습니다.또한,'each '도우미를 사용하여'