1
我爲控制器中的模型屬性設置了觀察者函數。 並且一旦我進入該控制器的路由,它就會啓動。如何在setupController中設置模型時在控制器中啓動觀察器?
我知道這是因爲controller.set('model', model);
在setupController
。我怎樣才能防止這一點?
我想使用觀察者在屬性更改時更改另一個屬性。
,因爲這種行爲我的邏輯會導致一個錯誤,但.....
路線
MuteAdmin.NewRoute = Ember.Route.extend({
model: function() {
return this.store.createRecord(this.get('articleModelClassName'));
},
setupController: function(controller, model) {
controller.set('model', model);
this.store.find(this.get('categoryModelClassName')).then(function(categories) {
controller.set('categories', categories);
if (model.get('category') == null) {
model.set('category', categories.get('firstObject'));
};
}.bind(this));
},
deactivate: function() {
if(this.controller.get('isDirty')) this.controller.get('model').deleteRecord();
}
});
控制器
MuteAdmin.NewController = Ember.ObjectController.extend(MuteAdmin.Modelable, {
publicChanged: function() {
console.log('How can I prevent this from printing when entering its route?');
}.observes('public'),
actions: {
submit: function() {
var currentUser = this.get('currentUser');
var article = this.get('model');
article.set('author', currentUser);
article.save().then(function() {
this.set("flashSuccess", "Successfully Created.");
this.transitionToRoute('index');
}.bind(this), function() {
});
}
}
});
那怎麼特性/控制器上的工作觀察者,如果模型的變化,所有的屬性被監視無效。邏輯可能需要被推上一個級別到你的模型。 – Kingpin2k 2014-09-05 18:06:07