我正在使用AngularJS 1.5.1和ui-router 0.3.1
我试图从组件内的控制器获取当前状态。我需要根据当前状态在我的组件的模板html中做一些事情。但是,我似乎无法从组件的控制器内部“读取”$state.current
。
我有一个leftnav
组件使用ui-sref将内容加载到页面上的视图中,如此(简化):
leftnav组件有一系列链接,如下所示:
<a href="" ui-sref="buttons">Buttons</a>
这会将我的“按钮”模块中的路线加载到上面的ui-view
。
如果我尝试记录组件控制器中当前状态的任何内容:
console.log($state.href($state.current));
console.log($state.get($state.current));
我只获得null
。
但是,如果我在buttons
控制器中使用相同的内容,它会按预期工作。
如何从组件内部访问$ state.current?
我的组件是这样的:
(function () {
'use strict';
angular.module('app').component('pbDsLeftnav', {
bindings: {},
controllerAs: 'ctrl',
templateUrl: 'core/directives/pb-ds-leftnav.component.html',
controller: function ($log, $rootScope, $state, $stateParams) {
var _this = this;
console.log($state.href($state.current));
console.log($state.get($state.current));
console.log($state.current.data);
}
});
})();
正如我所说,在“按钮”控制器中记录相同的内容工作:
(function () {
'use strict';
angular.module('pb.ds.badges').controller('BadgesController', function ($log, $state) {
var _this = this;
console.log($state.href($state.current));
console.log($state.get($state.current));
console.log($state.current.data);
})();