gpt4 book ai didi

javascript - UI-Router ng-class ="$state.includes(' name')"不在指令中工作

转载 作者:行者123 更新时间:2023-12-03 17:55:12 24 4
gpt4 key购买 nike

我想使用 ui-router 的能力来测试 ng-class 中的事件状态

如果我尝试这样做,它不起作用:

navTest.$inject = ["$compile", "$navbar", "$state"];
function navTest($compile, $navbar, $state) {
var defaults = $navbar.defaults;

var navTest = {
restrict: 'E',
template: '<nav class="navbar navbar-default" role="navigation">' +
'<div class="container-fluid">' +
'<div class="navbar-header">' +
'<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">' +
'<span class="sr-only">Toggle navigation</span>' +
'<span class="icon-bar"></span>' +
'<span class="icon-bar"></span>' +
'<span class="icon-bar"></span>' +
'</button>' +
'<a class="navbar-brand" href="#">Brand</a>' +
'</div>' +
'<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">' +
'<ul class="nav navbar-nav">' +
'<li data-ng-class="{active: $state.includes(\'user\')}"><a data-ui-sref="user.List">Link 1</a></li>' +
'<li data-ng-class="{active: $state.includes(\'technology\')}"><a data-ui-sref="technology.List">Link 2</a></li>' +
'</ul>' +
'</div>' +
'</div>' +
'</nav>',
replace: true
};
return navTest;
}

现在如果我添加一个函数来测试“链接”函数中的事件状态(指令的)我用 data-ng-class="{active: isActiveState(\'技术\')}"

link : function (scope, elem, attrs) {
scope.isActiveState = function (name) {
return $state.includes(name);
};
}

一切正常,但我不明白为什么因为函数做的事情完全一样?

最佳答案

这是一个范围的事情,但你不想使用 $rootScope;将以下内容放入您的 link 函数中就足够了:

scope.$state = $state;

关于javascript - UI-Router ng-class ="$state.includes(' name')"不在指令中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28580827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com