आपके नमूना कोड के साथ कुछ समस्याएं हैं, मैं प्रत्येक को संबोधित करूंगा और आशा करता हूं कि मैं कुछ चीजों को साफ़ कर सकता हूं।
कन्वेंशन
नामकरण सबसे पहले आप Emberist पर एक नजर है चाहिए पोस्ट naming conventions के बारे में: कक्षा अपरकेस और लोअरकेस उदाहरणों नाम दिया जाना चाहिए - अनुप्रयोगों और नामस्थान के लिए अपवाद। तो आपके comment में आपके प्रदत्त JSFiddle में यह App.controller
और App.ATextField
है।
अनुप्रयोग वैश्विक चर
आप एक Ember.Application
का उदाहरण बनाकर और var app
को यह बताए जाते हैं के रूप में की घोषणा। हालांकि वैश्विक चर का उपयोग करते समय आपको सावधान रहना चाहिए, इस मामले में आपको अपने एप्लिकेशन को वैश्विक नामस्थान पर परिभाषित करना चाहिए, इसलिए यह App = Ember.Application.create();
क्रमशः window.App = Ember.Application.create();
होना चाहिए। ऐप को वैश्विक चर के रूप में घोषित करके, आप अपने टेम्पलेट्स और अपने जेएस कोड में शक्तिशाली बाइंडिंग सुविधा का उपयोग कर सकते हैं।
बाइंडिंग
बाइंडिंग वर्गों पर उदाहरणों पर घोषित किया जाना चाहिए और नहीं। इसका मतलब है कि आप अपनी कक्षा परिभाषा में App.TextField
के valueBinding
को परिभाषित नहीं करेंगे बल्कि इसे ठोस उदाहरण में ले जाएं, उदाहरण के लिए टेम्पलेट में।
आपके comment में आपके प्रदत्त JSFiddle में नियंत्रक के लिए बाध्यकारी काम नहीं करता है क्योंकि आप एक का उपयोग नहीं करते हैं: किसी विशिष्ट नियंत्रक/ऑब्जेक्ट/को बाध्यकारी बनाने के लिए ... आपको संपत्ति का नाम घोषित करना होगा आप Binding
स्ट्रिंग को बांधना और जोड़ना चाहते हैं। तो यह disabledBinding: 'App.controller.shouldDisable'
होगा।
उदाहरण
मैं अपने कोड पुनर्संशोधित किया है, http://jsfiddle.net/pangratz666/pLpKV/ देखें:
Handlebars:
{{view Ember.TextField
valueBinding="App.tempObj.hold"
disabledBinding="App.controller.shouldDisable"}} {{App.tempObj.hold}}
जावास्क्रिप्ट:
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');
मुझे यकीन नहीं है कि जब आप इस प्रश्न को पोस्ट करते हैं तो वापस क्या था, लेकिन किसी भी नियंत्रक बाइंडिंग के बिना अक्षम संपत्ति को दृश्य में परिभाषित करना निश्चित रूप से संभव है। – asaf000