我正在尝试在特定路线中的元素中应用CSS样式。为此,我创建了一个指令,当$ state.include包含位置时我添加了类,但由于路径不断变化,它需要监视$状态的变化,但它不起作用。这是我的代码:
angular
.module('pharm')
.directive('flApplyStyle',['$stateParams','$state',applyStyle]);
function applyStyle($stateParams,$state) {
return {
link: function(scope, element, attributes){
console.log($state.current);
scope.$watch($stateParams, function (newValue, oldValue) {
if ($state.includes("app.calc.edit")) {
element.addClass('BackgroundEdit');
}else{
element.addClass('none');
}
});
}
}
};
答案 0 :(得分:0)
这应该可行。点按$stateChangeStart
事件,然后检查$state
的更改。如果该事件无效,请尝试$stateChangeSuccess
。
angular
.module('pharm')
.directive('flApplyStyle', ['$rootScope','$state', applyStyle]);
function applyStyle($rootScope, $state) {
return {
link: function(scope, element, attributes){
$rootScope.$on('$stateChangeStart', function () {
if ($state.includes("app.calc.edit")) {
element.addClass('BackgroundEdit');
} else {
element.addClass('none');
}
});
}
}
}