Örnek kodunuzla ilgili bazı sorunlar var, her birine gidip bazı şeyleri temizleyebileceğime umarım. Her şeyden önce sen Emberist bir göz olmalıdır
Sözleşmesi adlandırma
yaklaşık naming conventions sonrası: Sınıflar UpperCase ve örnekleri küçük harfe adlı olmalıdır - uygulamalar ve ad için istisna. Dolayısıyla, comment numaralı telefondan sağladığınız JSFiddle'da, App.controller
ve App.ATextField
. Bir Ember.Application
bir örneğini oluşturup var app
atamadan olan
küresel değişken olarak App bildirme
. Global değişkenleri kullanırken dikkatli olmalısınız, ancak bu durumda uygulamanızı genel ad alanında tanımlamanız gerekir, bu nedenle sırasıyla window.App = Ember.Application.create();
olmalıdır. Uygulamayı global değişken olarak bildirerek, şablonlarınızdaki ve JS kodunuzdaki güçlü Bindings özelliğini kullanabilirsiniz.
Bağlar
bağlamaları sınıflar üzerinde örneklerinde beyan değil edilmelidir. Bununla, App.TextField
ürününüzün valueBinding
'unu sınıf tanımınızda tanımlayamazsınız, bunun yerine bunu örneğin somut örneğe, örneğin şablona taşıyın.
Sağladığınız JSFiddle öğesinin comment'unuzda denetleyiciye bağlamanız, bir tane kullanmadığınız için çalışmaz: belirli bir denetleyiciye/nesneye bağ oluşturmak için ... özellik adını bildirmeniz gerekir Bağlamak ve Binding
Dize eklemek istiyorsunuz. Yani disabledBinding: 'App.controller.shouldDisable'
olur.
Örnek I kodunuzu refactored ettik
, http://jsfiddle.net/pangratz666/pLpKV/ bkz:
Gidon:
{{view Ember.TextField
valueBinding="App.tempObj.hold"
disabledBinding="App.controller.shouldDisable"}} {{App.tempObj.hold}}
JavaScript:
App = Em.Application.create();
App.controller = Em.Object.create({
shouldDisable: true
});
App.tempObj = Em.Object.create({
hold: "initial value"
});
// just to illustrate how to define bindings outside of templates,
// we're adding a TextField with bindings setup the same as for the
// template
Ember.TextField.create({
valueBinding: 'App.tempObj.hold',
disabledBinding: 'App.controller.shouldDisable'
}).appendTo('body');
Bu soruyu ne zaman yayınladığınızdan emin değildim, ancak engelli özelliğini görünümde hiçbir denetleyici bağlaması olmadan tanımlamak kesinlikle mümkün. – asaf000