我想知道在服务属性更改后,如何在Emberjs Octane上激发组件中的函数。这里是一个例子,我是如何做到这之前辛烷。
子组件。辛烷之前的js
import Component from '@ember/component';
import {inject as service} from '@ember/service';
import {computed, observer} from '@ember/object';
import { isEmpty } from '@ember/utils';
import { on } from '@ember/object/evented';
export default Component.extend({
userAccount: service(),
childNavigation: service(),
whenUserChanges: on('init', observer( 'userAccount.user', 'childNavigation.{activeIgdiMeasure,currentChild}', function () {
this.getChildItems();
}))
})
不推荐观察者,@tracked在服务上不起作用,因此我不确定如何将whenUserChanges函数转换为Octane。
1条答案
按热度按时间ubof19bj1#
@默认情况下,tracked不会观察到对象的深层变化,因此需要使用扩展运算符
obj = {...obj}
告诉tracked obj已更改,或者可以使用ember-deep-tracked,并通过观察user.account来调用getChildItems。status您可以使用ember-render-modifiers提供的渲染挂钩,如模板级别的did-insert
,例如以下代码:,