- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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假设您可以使用 $state
的 current
属性访问当前状态的配置对象,因此绝对不需要将任何内容附加到 $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/
我是一名优秀的程序员,十分优秀!