सामान्य रूप से, आप नियमित जावास्क्रिप्ट ऑब्जेक्ट्स को ठीक से देख सकते हैं।
var pojo = {};
var MyObject = Ember.Object.extend({
bigEyeballs: function() {
var O_O = this.get('pojo.O_O');
if (O_O) { return O_O.toUpperCase(); }
}.property('pojo.O_O')
});
var obj = MyObject.create({ pojo: pojo });
console.log(obj.get('bigEyeballs'));
Ember.set(pojo, 'O_O', "wat");
console.log(obj.get('bigEyeballs'));
आप this JSBin में यह काम कर देख सकते हैं: आप सिर्फ उन्हें संशोधित करने के लिए Ember.get
और Ember.set
उपयोग करने के लिए की जरूरत है।
स्थानीय संग्रहण एक अलग मामला है, क्योंकि यह वास्तव में एक सामान्य जावास्क्रिप्ट ऑब्जेक्ट नहीं है। आप स्थानीय भंडारण के चारों तरफ छोटे एंबर आवरण बना सकते हैं और उपयोग करें कि अवलोकन के लिए:
var LocalStorage = Ember.Object.extend({
unknownProperty: function(key) {
return localStorage[key];
},
setUnknownProperty: function(key, value) {
localStorage[key] = value;
this.notifyPropertyChange(key);
return value;
}
});
var storage = new LocalStorage();
var MyObject = Ember.Object.extend({
bigEyeballs: function() {
var O_O = this.get('pojo.O_O');
if (O_O) { return O_O.toUpperCase(); }
}.property('pojo.O_O')
});
var obj = MyObject.create({ pojo: storage });
console.log(obj.get('bigEyeballs'));
Ember.set(storage, 'O_O', "wat");
console.log(obj.get('bigEyeballs'));
आप इस JSBin पर रहते हैं देख सकते हैं।
दोनों मामलों में, महत्वपूर्ण बात यह है कि आपको एम्बर-जागरूक सेटिंग का उपयोग करना होगा और इन गुणों का निरीक्षण करने के लिए प्राप्त करना होगा।
स्रोत
2013-01-12 06:09:11