我正在使用UI-Router
。我有一个视图,我需要捕获它的当前状态,并将其作为参数发送到控制器作为按钮中的ng-click
函数。
当我undefined
函数console.log
中传输的对象
transferState
<button ng-click="transferState($state.current.name)">Click me</button>
我该怎么做?
答案 0 :(得分:1)
您必须将$ state传递给控制器,或者将run-phase传递给$ rootscope。 然后,您可以从视图中访问$ state。
e.g:
angular.module('myApp').controller('myCtrl', function($scope, $state) {
$scope.$state = $state;
});
答案 1 :(得分:0)
一种常见的方法是将两个频繁使用的服务注入$rootScope
。这在示例应用中使用 - app.js
.run(['$rootScope', '$state', '$stateParams',
function ($rootScope, $state, $stateParams) {
// It's very handy to add references to $state and $stateParams to the $rootScope
// so that you can access them from any scope within your applications.For example,
// <li ng-class="{ active: $state.includes('contacts.list') }"> will set the <li>
// to active whenever 'contacts.list' or one of its decendents is active.
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}])
现在,每个视图都可以直接访问这些视图。示例应用程序为here。