2013-07-04 19 views
5

Im ember-modeluygun şekilde

ben şöyle geri geliyor json sahip kullanarak veri sideload uygun şekilde anlamaya çalışarak, (i alan uğruna gerçek json dan onu biraz zayıflayan burada) benim Sınıf Modeli

{ 
    "classrooms" : [ 
    { 
     "classroom_name" : "Class 1", 
     "id" : 1, 
     "teacher_id" : 3, 
     "grade" : 5, 
     "assignments" : [ 

     ], 
     "students" : [ 
     { 
      "id" : 5, 
      "last_name" : "Ford", 
      "first_name" : "Henry", 
      "district_id_number" : "MD454" 
     } 
     ] 
    }, 
    { 
     "classroom_name" : "Class 3", 
     "id" : 2, 
     "teacher_id" : 3, 
     "grade" : 4, 
     "assignments" : [ 
     { 
      "id" : 5, 
      "assignment_overview" : "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\r\n\r\nNam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.", 
      "assignment_title" : "Fractions", 
      "story" : null 
     } 
     ], 
     "students" : [ 
     { 
      "id" : 5, 
      "first_name" : "Henry", 
      "last_name" : "Ford", 
      "district_id_number" : "MD454" 
     }, 
     { 
      "id" : 3, 
      "first_name" : "Jake", 
      "last_name" : "Strong", 
      "district_id_number" : "WH6879" 
     }, 
     { 
      "id" : 6, 
      "first_name" : "Bryan", 
      "last_name" : "Dobson", 
      "district_id_number" : "B453" 
     } 
     ] 
    } 
    ] 
} 

i gömülü öğrenci nesneler üzerinde döngü, sideloaded verilere onlara yük nerede, sonra onları dışarı çekmek için find kullanmak şöyle bir bilgisayarlı özelliği vardır.

classroomStudents: function() { 
    var studentObjects = [], 
     students = this.get('students'); 

    Msmapp.Student.load(students); 

    students.forEach(function(student) { 
     studentObjects.pushObject(Msmapp.Student.find(student.id)); 
    }); 

    return studentObjects; 
    }.property('students') 

Im o this.get('students') düşünerek neler Msmapp.Student.load(students); beklediği olmayabilir. Veriyi ham formatta beklediğini ve this.get('students')'un bu kadar% 100 pozitif olmadığını varsayıyorum.

Bu i

[Object 
    resource_document_ids: Array[0] 
    resource_ids: Array[0] 
    resource_image_ids: Array[0] 
    resource_video_ids: Array[0] 
    __proto__: Object 
     district_id_number: "MD454" 
     first_name: "Henry" 
     id: 5 
     resource_document_ids: Array[0] 
     resource_ids: Array[0] 
     resource_image_ids: Array[0] 
     resource_video_ids: Array[0] 
     __proto__: Object 
,Object 
,Object 
] 

hata ayıklama Ve ben sınıfları olsun iade studentObjects dizi hata ayıklama ama onlar yok zaman doğru olmak benim şablonunda

[Class 
    __ember1372909895769: undefined 
    __ember1372909895769_meta: Meta 
    _super: undefined 
    data: Object 
    isLoaded: true 
    isNew: false 
    __proto__: Object 
    id: 5 
    resource_document_ids: Array[0] 
    resource_ids: Array[0] 
    resource_image_ids: Array[0] 
    resource_video_ids: Array[0] 
    __proto__: Object 
    __defineGetter__: function __defineGetter__() { [native code] } 
    __defineSetter__: function __defineSetter__() { [native code] } 
    __lookupGetter__: function __lookupGetter__() { [native code] } 
    __lookupSetter__: function __lookupSetter__() { [native code] } 
    constructor: function Object() { [native code] } 
    hasOwnProperty: function hasOwnProperty() { [native code] } 
    isPrototypeOf: function isPrototypeOf() { [native code] } 
    propertyIsEnumerable: function propertyIsEnumerable() { [native code] } 
    toLocaleString: function toLocaleString() { [native code] } 
    toString: function toString() { [native code] } 
    valueOf: function valueOf() { [native code] } 
    isLoaded: true 
    isNew: false 
, Class 
, Class 
] 

i gibi bir şey var göründüğünde neler this.get('students') olduğunu Bu

f değerleri dışarı çıkar, çünkü bunlar nesne üzerinde kurulum yapmıyorlar, ancak linkto doğru çalışıyor. Hayalini yapıyorum çünkü onun hayal ediliyor. Her ikisi de {{ student.first_name }} veya {{ first_name }} tanımsızdır.

cevap

6

Verileriniz, yan yükleme için uygun şekilde yapılandırılmamış. Yandan yüklenen verilere aşağıdakileri yapmalısınız:

  1. Verilerinizi içeren ve yüklediğiniz verilerin en yüksek düzeyinde ek bir anahtar oluşturun. Aşağıdaki örnekte, tüm öğrencilerin bulunduğu iade edilen verilerinizin en yüksek seviyesinde bir "öğrenci" mülkü oluşturdum.
  2. İade edilen ana nesnelerin her birinde bulunan bu ek öğelere bakın. Aşağıdaki örnekte, her öğrenciden "öğrenci" özelliğini "student_ids" olarak değiştirdim ve yan yüklü verilerdeki her öğrencinin kimliğine atıfta bulunulan bir dizi init yaptı.

Örnek: Bu şekilde verilerinizi inşa ederse

{ 
    "classrooms" : [ 
    { 
     "classroom_name" : "Class 1", 
     "id" : 1, 
     "teacher_id" : 3, 
     "grade" : 5, 
     "assignments" : [ 

     ], 
     "student_ids" : [ 5 ] 
    }, 
    { 
     "classroom_name" : "Class 3", 
     "id" : 2, 
     "teacher_id" : 3, 
     "grade" : 4, 
     "assignments" : [ 
     { 
      "id" : 5, 
      "assignment_overview" : "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\r\n\r\nNam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.", 
      "assignment_title" : "Fractions", 
      "story" : null 
     } 
     ], 
     "student_ids" : [ 5, 3, 6] 
    } 
    ], 
    "students" : [ 
    { 
     "id" : 5, 
     "first_name" : "Henry", 
     "last_name" : "Ford", 
     "district_id_number" : "MD454" 
    }, 
    { 
     "id" : 3, 
     "first_name" : "Jake", 
     "last_name" : "Strong", 
     "district_id_number" : "WH6879" 
    }, 
    { 
     "id" : 6, 
     "first_name" : "Bryan", 
     "last_name" : "Dobson", 
     "district_id_number" : "B453" 
    } 
    ] 
} 

, Ember Veri sizin için önekler işlemek gerekir.

Daha fazla bilgi here.

+0

Sanal model değil, ember-data kullanıyorum. İşe yarayıp yaramadığını görmek için bunu vereceğim. – CoderStash

İlgili konular