Javascript 根据查询参数ember更改div颜色

Javascript 根据查询参数ember更改div颜色,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,我试图通过{{{#link to}}助手发送一个查询参数,在我的路由中获取查询参数,然后根据发送的参数动态更改div的颜色。我可以看到我得到了正确的ID,但页面上似乎什么也没有发生 这是我的助手链接 <li>{{#link-to 'usernotification' (query-params highlightedNotification=activeUserNotification.id) classNames="read-

我试图通过
{{{#link to}}
助手发送一个查询参数,在我的路由中获取查询参数,然后根据发送的参数动态更改div的颜色。我可以看到我得到了正确的ID,但页面上似乎什么也没有发生

这是我的助手链接

<li>{{#link-to 'usernotification' (query-params highlightedNotification=activeUserNotification.id)
                            classNames="read-more"}}Read more{{/link-to}}</li>

有人能看到我哪里出了问题吗?

模型之前
钩子,路线还没有渲染!因此,您尝试修改的DOM元素不在其位置

你可以通过某种方式让它工作。例如,通过使用
Ember.run.scheduleOnce('afterRender',this,()=>{/*您的代码*/})包装代码,安排运行该代码以在
afterRender
阶段工作。可能还有其他选择

但这不是余烬的做法。您应该将此数据传递给相应的组件。组件应决定其显示方式

此外,名称“
highlightedNotification
”可能是错误的。它应该类似于:“
selectedNotification
”、“
currentNotification
”、“
notificationtobeattentied
”。让组件决定如何强调注意力。“Highlighting”只是引起注意的一种方式

示例来说明建议的方法

export default BaseRoute.extend({
    accountService: Ember.inject.service('account'),
    userNotificationService: Ember.inject.service('usernotification'),

    queryParams: {
        highlightedNotification: {
            refreshModel:true
        }
    },

    beforeModel(params){
        this._super(...arguments);
        Ember.$("#"+params.queryParams.highlightedNotification).attr('style', 'background-color: black !important');
    },

});