Ember.js: Nilai properti array yang dibagikan di antara instance Komponen

Dibuat pada 11 Des 2013  ·  3Komentar  ·  Sumber: emberjs/ember.js

Tidak yakin apakah saya telah melakukan sesuatu yang salah, tetapi ini dia.
Saya telah membuat komponen dengan beberapa properti, semuanya berfungsi dengan benar dalam lingkup instance komponennya. Namun ketika saya menambahkan properti dengan nilai array, itu berperilaku tidak terduga: Ketika sebuah elemen didorong ke dalam array komponen melalui @set , itu didorong ke dalam properti setiap komponen.

Komentar yang paling membantu

Saya berasumsi Anda punya sesuatu seperti:

App.MyThingsComponent = Ember.Component.extend({
  things: []
}):

Ini akan menggunakan instance array yang sama untuk semua komponen karena dievaluasi saat kelas didefinisikan, bukan saat dipakai.

Anda dapat memperbaikinya dengan membuat instance array saat komponen diinisialisasi:

App.MyThingsComponent = Ember.Component.extend({
  things: null,
  setupThings: function(){
    this.set("things", []);
  }.on("init")
}):

Sekarang Anda akan mendapatkan instance array baru untuk setiap instance komponen dan semuanya akan berperilaku seperti yang Anda harapkan.

ht

Semua 3 komentar

Saya berasumsi Anda punya sesuatu seperti:

App.MyThingsComponent = Ember.Component.extend({
  things: []
}):

Ini akan menggunakan instance array yang sama untuk semua komponen karena dievaluasi saat kelas didefinisikan, bukan saat dipakai.

Anda dapat memperbaikinya dengan membuat instance array saat komponen diinisialisasi:

App.MyThingsComponent = Ember.Component.extend({
  things: null,
  setupThings: function(){
    this.set("things", []);
  }.on("init")
}):

Sekarang Anda akan mendapatkan instance array baru untuk setiap instance komponen dan semuanya akan berperilaku seperti yang Anda harapkan.

ht

Terima kasih banyak! Jadi, apakah ini perilaku yang dimaksudkan? Kenapa tidak bekerja seperti ini dengan string misalnya?

@Geokoumpa ini karena pewarisan prototipe Javascript. Berikut adalah posting blog menyeluruh dari @wycats yang berguna untuk mempelajari aspek Javascript itu.

http://yehudakatz.com/2011/08/12/understanding-prototypes-in-javascript/

Apakah halaman ini membantu?
0 / 5 - 0 peringkat