如何在ui-route状态内调用函数

时间:2015-03-07 06:53:16

标签: angularjs angular-ui-router angular-ui

我是角色新手,我需要知道如何调用roles旁边的函数而不是[]需要调用函数,在下面的示例中: -

state('signin', {
        parent: 'site',
        url: '/signin',
        data: {
            roles: [] //Here i need to call function Becuase i need 
                        assign values like this roles: ['dev','Admin'] 
                        (need to know how to call function here)
        },
        views: {
            '': { templateUrl: '/signin.html' },
            'content@': {
                templateUrl: '/index.html',
                controller: 'SigninCtrl'
            }
        }
    })

如果,我正在尝试resoleve,如下例所示: -

   .state('signin', {
    parent: 'site',
    url: '/signin',

    views: {
        '': { templateUrl: '/signin.html' },
        'content@': {
            templateUrl: '/index.html',
            controller: 'SigninCtrl'
        }
    },
    resolve: {
        TrackerApp: function ($q) {
            var defer = $q.defer();
            roles: Loadrole()
            defer.resolve();
            return defer.promise();
        }

    }
})

获得错误: -

TypeError:无法读取属性'角色'未定义的

如果我将角色放入解决方案以获得上述错误

1 个答案:

答案 0 :(得分:0)

您的解决方法必须如下:

resolve: {
            "trackerApp" : "TrackerApp",
            "roles" : trackerApp.getRoles();
     }

将数据提取部分移动到getRoles()等服务方法。将其分配给roles属性,该属性将在您的控制器范围内可用。