可能是一个简单的答案,但作为一个初学者,比如说我想在我的控制器中存储我的ember模型中的属性,然后我可以与新数据进行比较,我该怎么做呢?
为了提供更多上下文,我有一个输入字段,其中使用model.user_input
检索值,我希望能够在首次加载视图时将其存储在某处,然后在值更改时进行比较。我已尝试使用计算属性,但在模型更改时它们也会更新。
答案 0 :(得分:0)
在您的控制器路线中,您可以设置控制器,使控制器保存初始值:
import Ember from 'ember'
export default Ember.Route.extend({
model() {
return {
'user_input': /* ... */
}
},
setupController(controller, model) {
this._super(...arguments)
controller.set('original_input', Ember.get(model, 'user_input'))
}
})
这样,当值发生变化时,您只需通过控制器上的Ember.get(this, 'original_input')
获取原始值:
import Ember from 'ember'
export default Ember.Controller.extend({
'original_input': '',
isChanged: Ember.computed('model.user_input', function() {
return Ember.get(this, 'original_input') !== Ember.get(this, 'model.user_input')
})
})