使用ui-router在控制器内调用函数

时间:2015-02-22 18:49:45

标签: angularjs angular-ui-router

我正在寻找一种在控制器内调用函数的解决方案。我怎么能实现这一点。

国家

.state('confirm.registration',
{   url: "/confirm/registration",
   controller:'userController',
   onEnter:'confirmregistration()',
   permissions:{}

})

控制器

$scope.confirmregistration = function(){
//do something

}

2 个答案:

答案 0 :(得分:0)

这很有效。但是想知道这是否是正确的方法。

<强> app.js

 .state('confirmregistration',
      {   url: "/confirm/registration/:registrationseed",
          controller:"userController",
          permissions:{}
      })

<强>控制器

if($stateParams.registrationseed){

        console.log($stateParams.registrationseed);
      }

答案 1 :(得分:0)

我建议您将$broadcast个事件放入onEnter函数中,该函数将在$rootscope中广播,并且可以使用$on监听该事件控制器内部。

<强>配置

.state('confirm.registration', {
    url: "/confirm/registration",
    controller: 'userController',
    onEnter: function($rootScope, $timeout, $stateParams) {
        //used $timeout to load after controller gets initialized
        //so that $on event should get define before broadcasting
        $timeout(function() {
            $rootScope.$broadcast('eventBroadcasted', $stateParams.registrationseed);
        })
    },
    permissions: {}
})

<强>控制器

$scope.$on('eventBroadcasted', function(event, data) {
    //you can get $route parameter inside data itself
});

我认为这将是方法,而不是你正在做的事情。感谢。