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');
},
});