Javascript 如何找到传递到组件的属性?
我在余烬中有一个组件Javascript 如何找到传递到组件的属性?,javascript,ember.js,ember-components,Javascript,Ember.js,Ember Components,我在余烬中有一个组件 {{some-setup-section processingOfId=processingOfId savingActivitySetUp=savingActivitySetUp editingActivitySetUp=editingActivitySetUp}} 在我的组件js文件中 didUpdateAttrs() { this.updateDataOnChange(); this._super(...arguments)
{{some-setup-section
processingOfId=processingOfId
savingActivitySetUp=savingActivitySetUp
editingActivitySetUp=editingActivitySetUp}}
在我的组件js文件中
didUpdateAttrs() {
this.updateDataOnChange();
this._super(...arguments);}
我使用didUpdateAttrs来查找某些属性何时发生了更改。在我的例子中,只有当processingOfId
发生变化时,我才需要执行一个函数。是否有类似this.attrs('processingOfId').didChanged()
这样的方法来帮助我解决问题
我试过了
didUpdateAttrs({oldAttr, newAttr})
并检查是否oldAttr.someAttrs!==newAttr.someAttrs
值,但在控制台中,它说ember不鼓励像这样传递attr,而且很快就会被去除。有什么办法可以解决这个问题吗
总而言之,有没有办法找到在组件内部的“didUpdateAttrs”方法中更新的哪个属性没有内置方式
Ember.Component.extend({
didUpdateAttrs() {
let oldCoordinates = this.get('_previousCoordinates');
let newCoordinates = this.get('coordinates');
if (oldCoordinates && oldCoordinates !== newCoordinates) {
this.map.move({ from: oldCoordinates, to: newCoordinates });
}
this.set('_previousCoordinates', newCoordinates);
}
});
- 提供给diffAttrs的函数钩子将始终被调用,即使跟踪的attr没有更改
- changedAttrs在第一次调用时将为空