我的代码无效的任何具体原因?
<li ng-class="{active : $state.includes('products')}">
路由器代码:
.state('products', {
url: '/products',
templateUrl: 'app/components/views/products/products.html',
controller: 'productsController',
controllerAs: 'products'
})
答案 0 :(得分:3)
您忘记在
上设置
CMAKE_MINIMUM_REQUIRED(VERSION 3.6)
PROJECT(ex01)
FIND_PACKAGE(FLTK REQUIRED NO_MODULE) # must use "NO_MODULE"
include_directories(${FLTK_INCLUDE_DIRS})
link_directories(${FLTK_LIBRARY_DIRS})
add_definitions(${FLTK_DEFINITIONS})
ADD_EXECUTABLE( ex01 ex01.cxx )
TARGET_LINK_LIBRARIES( ex01 fltk ) # notice fltk here
$state
和$stateParams
,如果您这样做,可以继续在html上使用第一种方法:
$rootScope
这样你就不需要在每个控制器上注射它们了。
PS:我个人不推荐这种全球性方法,但它有其优点答案 1 :(得分:2)
您需要通过控制器中的 $ injector 获取$ state提供商(因为您会自己注入 $ scope 或服务。
<强> 编辑: 强>
包括它:
angular.module('yourModule', []).controller('YourController',['$injector',
funciton($injector){}
]);
然后:
$scope.$state = $injector.get('$state');
您现在可以访问$ state。要获取当前状态的名称,只需使用:
$state.current.name
示例:
<li ng-class="{active : $state.current.name === 'products'}">