Kafamı bütün gün bu soruna karşı savundum ve bir çözüme yaklaştığımı hissediyorum, ancak bunun tam olarak gerçekleşmesini sağlayamıyorum. Ember-Data ve Fixtures bağdaştırıcısı ile Ember.js kullanıyorum, sonunda bir REST bağdaştırıcısına geçiyorum. Temel sorun şudur: çoktan çoğaya ilişkisi ile Siteler ve Denetleyicilerim var. Ben sitede göre sınıflandırılmaktadır onların mevcut site/danışman eşleşmeleri için bir seçme kutusu, yani kullanıcıya sunmak istiyorum:Ember.js ember-data Üzerinden yineleme Kayıt Dizileri
- Sitesi 1 - Danışman 1
- Sitesi 1 - Danışman 2
- Sitesi 2 - Danışman 1 (çok çok unutmayın)
- Bölge 2 - I devralan bir görünüme geçebilir tek bir dizi halinde bu iki kaynak kavga gerekir Danışman 3
(ya da wi Ember.Select'ten devralacaksınız. Şu anda "düz" olarak adlandırdığım Süpervizörler denetleyicisindeki bir yöntemle deniyorum, çünkü bu ilişkileri temsil eden düzleştirilmiş bir dizi döndürecektir. Kontrolör aşağıda gösterilmiştir. Verileri yerine getirdikten sonra verileri işlemek için .find(). 'a geri döndüğüm veriler, dört fikzemin tümünü içermesi için görünmektedir, ancak bunların üzerinde sayısız yöntemden herhangi birini denediğimde (özellikle ForEach), yalnızca ilk nesneyi iade etmiş gibi davranır. Veri nesnesinin yanı sıra data.get ('content') üzerinde yinelemeyi denedim. Ember’e oldukça yeni geldim, belki de bu konuda yanlışlarım var, ama bu bana çok garip gelse de. İlk console.log gelen günlük çıkışı()
0: Object
1: Object
2: Object
3: Object
__ember1376005434256: "ember325"
__ember1376005434256_meta: Meta
_super: undefined
length: 4
__proto__: Array[0]
Ona, burada özlüyorum ne söyleyebilir çağrı burada oluyor
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
}) ;
}
}) ;
Ve: İşte benim kod? Sonuçta ortaya çıkan dört denetçinin her birine nasıl erişileceğini anlayamıyorum.
Teşekkürler!
Doğrudan [] operatörüne erişmek yerine data.objectAt (index) kullanmayı denediniz mi? –