이상한 사건이 있는데 어떻게 처리해야할지 모르겠습니다.
한 무리의 Containers
각 컨테이너 hasMany
items
가 있지만 item_slots
. 예를 들어 한 컨테이너에는 3 개의 슬롯이 있고 다른 컨테이너에는 1 개만있을 수 있습니다.
App.Container = DS.Model.extend({
name:DS.attr('string'),
item_slots:DS.attr('number'),
items:DS.hasMany('item')
});
App.Container.FIXTURES = [
{id:1, name:'Container 1', item_slots:3},
{id:2, name:'Container 2', item_slots:4},
{id:3, name:'Container 3', item_slots:1}
];
그리고이 Items
슬롯에 들어갈 수 있는 목록 이 있습니다.
App.Item = DS.Model.extend({
name:DS.attr('string')
});
App.Item.FIXTURES = [
{id:1,name:'Item 1'},
{id:2,name:'Item 2'},
{id:3,name:'Item 3'},
{id:4,name:'Item 4'}
];
내가 하려는 작업의 예로서 여기 에 jsBin을 만들었지 만 완전하지 않습니다. 내가 붙어있는 부분에 대해 주석을 달았습니다.
선택할 수있는 모든 항목의 드롭 다운을 제공하는 구성 요소를 만들었습니다. 내 질문은 실제로 어떻게 device_slots
각각을 반복 할 수 Container
있습니까? 그런 다음 item-selector
각 device_slot
.
나는 이것에 대한 API도 개발 중이므로 어쨌든이 문제를 해결하기 위해 수정 할 수 있다면 완전히 가능할 것입니다. 현재 페이로드는 다음과 같습니다.
{ "containers":
[{id:1,name:'Container 1',item_slots:3},
{id:2,name:'Container 2',item_slots:4},
{id:1,name:'Container 3',item_slots:1}]
}
다음과 같이 사용됩니다.
{ "containers":
[{id:1,name:'Container 1',items:[1,2,3]},
{id:2,name:'Container 2',items:[1,2,3,4]},
{id:1,name:'Container 3',items:[1]}]
}
실제로 작업을 시작하고 Ember가 항목을 자동으로 연결한다는 것을 깨달을 때까지 (굉장합니다!) items
빈 문자열이있는 배열이거나 NULL
계속 반복 할 수 있도록 API를 변경하려고 시도했지만 #each
모든 항목이로드되지 않았다는 오류가 계속 발생했습니다. item_slots
관계 문제를 피하기 위해로 변경했습니다 .
이 문제를 해결하기 위해 for 루프 도우미를 만들려고했지만 알아낼 수 없었습니다. 블록 도우미가 지원되지 않는 것을 보았을 때 잘못된 방향으로 가고있는 것 같았습니다. 이 작업을 수행하기 위해 뷰 또는 구성 요소를 사용할 수있는 방법을 생각하고 있었지만 보이지 않습니다. 나는 내 앱의 여러 위치에 이런 종류의 것을 가지고 있으며 각 경우를 처리하기 위해 많은 특수 클래스를 작성할 필요가 없습니다.
모든 의견, 아이디어 및 도움을 주시면 감사하겠습니다! 감사!!
문제를 해결하기 위해 ID가 0 인 새 빈 항목을 데이터 세트에 추가했습니다. 그런 다음 API에서 각 컨테이너가 각 슬롯에 하나씩 0 배열을 반환하도록 변경했습니다. Ember는 해당 데이터를 연결하고 정상적으로 반복 할 수 있지만 모든 것이 비어 있기 때문에 선택기로 설정할 때까지 아무것도 표시되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다