Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在emberJS中动态更改链接的颜色_Javascript_Ember.js_Hyperlink_Controller - Fatal编程技术网

Javascript 在emberJS中动态更改链接的颜色

Javascript 在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

这是我的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=“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文件中添加了突出显示的类?另外,请查看此链接:这样,您就可以了解发生了什么。此外,如果这个答案是帮助你,考虑标记它。