Przez cały dzień walczyłem z tym problemem i wydaje mi się, że jestem bliski rozwiązania, ale po prostu nie mogę tego zrobić. Używam Ember.js z Ember-Data i adapterem urządzeń, w końcu migruję do adaptera REST. Podstawowy problem polega na tym, że mam Witryny i Nadzorcy, z relacją wiele-do-wielu wiele-do-wielu. Chcę przedstawić użytkownikowi pole zaznaczania dla swoich istniejących par site/kierownik, posortowane według miejscu, tjPowtórzenie Ember.js tablice rekordów danych
- Site 1 - Supervisor 1
- Site 1 - Supervisor 2
- Portal 2 - Inspektor 1 (pamiętaj, wiele do wielu)
- Portal 2 - Inspektor 3
muszę użerać te dwa środki w jednej tablicy, że mogę przejść do widoku, który dziedziczy (lub wi będę dziedziczyć) z Ember.Select. Obecnie próbuję to z metodą na kontrolerze Supervisors, który nazywam "płaski", ponieważ zwróci spłaszczoną tablicę reprezentującą te relacje. Kontroler pokazano poniżej. Używam .find(). Then() do przetwarzania danych po spełnieniu obietnicy. Dane, które otrzymuję , pojawiają się, aby pomieścić wszystkie cztery moje urządzenia, ale kiedy wypróbuję jedną z metod przeliczalnych na nich (szczególnie dla AnyAach), zachowuje się tak, jakby zwracał tylko pierwszy obiekt. Próbowałem iterować nad obiektem danych, a także data.get ("treść"). Jestem całkiem nowy dla Embera, więc może i tak się mylę, ale niezależnie od tego wydaje mi się to bardzo dziwne. Oto mój kod:
App.SupervisorsController = Ember.ArrayController.extend({
flat: function(){
return App.Supervisor.find().then(function(data){
var c = data.get('content') ;
console.log(c) ; // <-- logs an object containing four records,
// with attribute "length" showing 4
// Great! (see below for log output)
console.log(c[0]) ; // <-- logs first record. Great!
console.log(c[1]) ; // <-- undefined (?!)
console.log(c[2]) ; // <-- undefined (?!)
console.log(c[3]) ; // <-- undefined (?!)
console.log(c.get('length')) ; // <-- 1 (not four?!)
return c ; // <-- eventually this will return the newly constructed array
}) ;
}
}) ;
i tu jest wyjście log z pierwszego console.log() zadzwonić
0: Object
1: Object
2: Object
3: Object
__ember1376005434256: "ember325"
__ember1376005434256_meta: Meta
_super: undefined
length: 4
__proto__: Array[0]
Czy możesz mi powiedzieć, co mam tu brakuje? Nie mogę wymyślić, jak uzyskać dostęp do każdego z czterech wynikowych przełożonych.
Dzięki!
Czy próbowałeś użyć data.objectAt (indeks) zamiast dostępu bezpośrednio przez operatora []? –