Öyle gibi iç içe geçmiş görüşlerini tanımlayan ediyorum (code example on JSFiddle) De ki: İsterdim ember.js: İç içe bakış örneklerini nasıl erişilir
App.ParentView = Ember.View.extend({
ChildView: Ember.View.extend({ ... }),
method: function() {
this.get('ChildView') // => this is the class, not the instance :(
}
});
{{#view App.ParentView}}
{{#view ChildView}}
...
{{/view}}
{{/view}}
ebeveyn görünümü ve arasındaki niteliklerin bir çok bağlama önlemek için çocuk bakışı. Bunun yerine,
this.getPath('ChildView.foo')
gibi bir şey yapmak isterim. Ancak
this.get('ChildView')
, örneği değil, Ember.View.extend ile oluşturduğum sınıfı döndürür, böylece özniteliklere erişemiyorum.
Çocuk görünümündeki geçerli örneğe, üst görünümdeki bir yöntem içinden erişmenin kanonik bir yolu var mı?
console.log(this._childViews[0].get('value'));
veya Eğer görüntülemek bir kimliği verebilir ve sadece gelen HTML elemanı erişmek için jQuery kullanın:
Bana göre 'viewName' bağlaması, ember.js yazarlarının sizin için tasarladığı şeydir, '_childViews' özel IMO'yu arar. Birden fazla örneğiniz varsa, görünümün kimliğine yardımcı olmaz. –
Teşekkürler, bu çok yararlı. Sınıflarımın “ChildView” (büyük harfli) ve örnek isimleri için 'viewName =" childView "(büyük harfsiz) kullanarak bir sözleşme kabul ettim. Bu makul olmayan kafa karıştırıcı yapar. –
@Bradley, örneğinizde, '' '' '' '' 'getPath''' ve '' '' '' '' '' '' '' '' '' '' '' 'ana görünümle ilgili bir fark var mıdır? –