나는 정말 어리석은 뭔가가 빠졌을 것이다. (Ember newbie)하지만 완전히 새로운 배열을 설정하는 것 외에 Ember Controller를 관리하는 배열을 수정하는 방법을 알 수 없다.Ember 컨트롤러가 관리하는 배열의 요소를 어떻게 수정합니까?
예를 들면. 내 컨트롤러에는 다음과 같은 테스트 기능이 있습니다. 사용자가 클릭 할 때 새로운 값을 사용하여 제어 된 배열의 각 요소를 수정 (또는 개별 요소 일 수 있음)하려고합니다.
난 당신이 엠버에게 알려진 변경하려면 "설정"을 가기로되어 있다는 것을 이해하고, 그래서 나는이 일 것이라고 생각 :
clickHandler:function(e){
var temp = this.get("itemList").copy(); // copy it
for (var i = 0; i < temp.length; i++) {
temp[i].desc = "CANCELLED"; // change it
}
this.set('itemList', temp); // put it back
}
내가 배열의 복사, 수정하기, 다시 설정하십시오. 하지만 여하튼 Ember는 4 행에 대해 불평합니다. 여기서 나는 temp [i] .desc의 내용을 수정하여 Ember.Set을 사용해야한다고 말합니다. 나는 "오프라인"복사본을 수정 한 다음 다시 설정할 수 있다고 가정했으나 중단하고 이유를 파악할 수 없습니다. shift/unshift/pop과 같은 다른 배열 작업이 효과가있는 것 같습니다.
감사합니다. 스택 오버플로에 관해 우리에게 교육 할 시간을 갖는 너희들은 대단하다. 불행히도 이러한 솔루션 중 어느 것도 나를 위해 일하지 않습니다. 두 경우 모두 오류가 발생합니다. "Uncaught TypeError : Object #
제안 사항은 완전히 이해할 수 있습니다. 이유를 알 수 없습니다. 작동하지 않습니다. ArrayController와 행을 사용하는 경우 : this.get ("content"). setEach ('desc', "CANCELLED"); 그렇다면 모든 템플릿 항목이 "CANCELED"로 재설정되는 것을 볼 수 있습니다. 따라서 "forEach"를 사용하면 "set"호출을 허용하지 않는 "item"이 다시 전달됩니다. :^( –
약 3 개월 전 사람들이 저를 시작하도록 도왔을 때 너무 기뻤습니다. 예를 들어 바이올린에 넣을 수 있습니까? 기본 에버 템플릿에 대한 링크를 몇 분 안에 게시 할 것입니다. – mavilein