gpt4 book ai didi

javascript - AngularJS - 传递给 Controller ​​的状态名称不起作用

转载 作者:行者123 更新时间:2023-11-30 10:05:00 26 4
gpt4 key购买 nike

我是 Angular 的新手,我不明白为什么这不起作用。

当我调用 {{$state.current.name}}在我看来,它工作得很好,但一旦我尝试将它传递给我的 Controller ,状态就会“丢失”。

这是我的设置:

模块:

angular.module('app', ['ui.router'])

.run(function ($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
})
//followed by boilerplate ui router setup

查看:

<home-nav-bar></home-nav-bar>

指令:

angular.module('app')
.directive('homeNavBar', function () {
return {
restrict: 'E',
templateUrl: 'homeNavBarView.html',
controller: 'navCtrl'
};
})
})();

Controller :

angular.module('app')
.controller('navCtrl', function ($state, $scope) {
alert($state.current.name); //returns empty
});
})();

在这一点上,我对为什么我可以在 View 中获取状态名称但在我的 Controller 中获取不到状态名称一无所知。

最佳答案

嗯,ui-router docs假设您可以使用 $statecurrent 属性访问当前状态的配置对象,因此绝对不需要将任何内容附加到 $rootScope。我刚刚测试了一些类似的东西(为了便于阅读而做了一些简化):

angular.module('myApp')
.controller('SomeCtrl', function ($scope, $state) {
console.log($state.current);
});

Chrome 控制台的结果是:

Object {url: "/some", templateUrl: "app/some.html", controller: "SomeCtrl", name: "some"}

如您所见,所有信息都应随名称一起提供。

关于javascript - AngularJS - 传递给 Controller ​​的状态名称不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29636572/

26 4 0
文章推荐: javascript - 在 中使用
有效吗?选择表格行内的所有选项