ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
在angularjs中,我们让侧边栏点击高亮 可以用$state.include实现,但是今天使用state.includes的时候,发现一直不能让侧边栏高亮: ~~~ ng-class="{highLight2: state.is(task.url)}" ~~~ 1. 把highLight2后面的表达式换成true,发现可以高亮,证明不是前面的问题,而是表达式的问问题 2. 给该标签加一个ng-click,然后把task.url作为参数传进去,看看是不是url的问题: ~~~ <li ng-class="{highLight2: state.is(task.url)}" ng-click="vm.taskClick(task.url)" ui-sref={{task.url}} style="padding-left: 70px"> <a>{{task.moduleName}}</a> </li> ~~~ ~~~ vm.taskCLick=function (url) { console.log(url); } ~~~ ![](https://box.kancloud.cn/dda361f9cf45a27e45d4fca1beb3806d_501x25.png) 发现不是url的问题,那问题只能出现在state上,最后发现是自己漏了一段代码: ~~~ vm.state = $state; ~~~ 必须把state进行绑定,才能在Html上进行state.is或includes, 之前一直以为state是angular内置的,像filter那样,麻瓜了: 最后的代码: ~~~ <li ng-class="{highLight2: vm.state.is(task.url)}" ng-click="vm.taskClick(task.url)" ui-sref={{task.url}} style="padding-left: 70px"> <a>{{task.moduleName}}</a> </li> ~~~