Javascript 在emberJS中动态更改链接的颜色
这是我的app.hbs文件,当我单击链接时,它应该突出显示,请帮助我如何执行此操作。我是Ember的新手,无法找到明确的解决方案。我有余烬版本2.18Javascript 在emberJS中动态更改链接的颜色,javascript,ember.js,hyperlink,controller,Javascript,Ember.js,Hyperlink,Controller,这是我的app.hbs文件,当我单击链接时,它应该突出显示,请帮助我如何执行此操作。我是Ember的新手,无法找到明确的解决方案。我有余烬版本2.18 {{#link-to 'adduser' id="addlink" }}MANUAL ADD {{/link-to}}</div> <br> {{#link-to 'csvadd' class="button"}} CSV ADD {{/link-to}} {{{#链接到'adduser'id=“ad
{{#link-to 'adduser' id="addlink" }}MANUAL ADD {{/link-to}}</div>
<br>
{{#link-to 'csvadd' class="button"}}
CSV ADD
{{/link-to}}
{{{#链接到'adduser'id=“addlink”}手动添加{{/link to}
{{{#链接到'csvadd'class=“button”}
CSV添加
{{/链接到}
您应该创建一个组件,该组件可以处理单击/活动或未单击的状态。您的模板可以如下所示:
<span {{action "transitionToRoute"}}>
<a>{{linkText}}</a>
</span>
import Component from '@ember/component';
import { inject as service } from '@ember/service';
export default Component.extend({
router: service(),
classNameBindings: ['highlighted'],
highlighted: false.
actions: {
transitionToRoute() {
this.set('highlighted', true);
this.get('router').transitionTo(this.get('route'));
}
}
});
{{highlighted-link route="addUser" linkText="Add User"}}
而且,如果您将组件称为hughlightedLink,您会这样使用它:
<span {{action "transitionToRoute"}}>
<a>{{linkText}}</a>
</span>
import Component from '@ember/component';
import { inject as service } from '@ember/service';
export default Component.extend({
router: service(),
classNameBindings: ['highlighted'],
highlighted: false.
actions: {
transitionToRoute() {
this.set('highlighted', true);
this.get('router').transitionTo(this.get('route'));
}
}
});
{{highlighted-link route="addUser" linkText="Add User"}}
当然,您必须定义css高亮显示类,以便按照您的意愿设置跨距的样式您的意思是鼠标向下时颜色应该改变吗?当您单击它时,链接是否在子例程中并且仍然可见?是的,链接将位于左侧,链接特定模板将加载在中心,因此应通过更改链接的背景颜色来突出显示已单击的链接。您是否检查了
活动类在此处是否可用?如果链接目标路由与当前路由匹配,则指向
的链接助手应在其自身上设置css类活动
。您还可以使用current when
属性(请参阅和)更改此设置。您想突出显示当前活动链接,还是要突出显示以前访问过的所有链接?当前活动链接先生,由于我是ember的新手,我应该从何处调用该组件,即您在模板中指定为{highlighted link route=“addUser”},您想将{{link}}助手放入其中的地方,现在使用新组件,即{{highlighted link}}组件。组件模板(span stuff)保存在自己的文件中,该文件是在您创建新组件时由ember cli生成的。先生,感谢您的帮助,我发现该模板可以工作,但这不会改变我的背景颜色。先生,我只是在app.css中为高亮显示的类指定了bg颜色,但没有结果。我是否应该为每个链接指定此颜色,如果我对每个链接使用相同的组件,那么当我调用组件时,我应该在路由中给出什么?请有人帮助我!您必须对单击后要高亮显示的每个链接使用此组件。您是否在css文件中添加了突出显示的类?另外,请查看此链接:这样,您就可以了解发生了什么。此外,如果这个答案是帮助你,考虑标记它。