如何在ui-router解析器上调用控制器?

时间:2016-01-15 02:54:15

标签: angularjs angular-ui-router

这就是我的ui-router的样子:

 .state('colleague', {
            url: "/colleague",

            templateUrl: "views/colleague.html",

            resolve: {
                typeEmployee: function ($q, $timeout) {
                    var deferred = $q.defer();
                    $timeout(function () {
                        deferred.resolve('manager');
                    }, 200);
                    return deferred.promise;
                }
                ,
                controller:  'colCtrl'
            }
        })

问题在于我无法进入同事页面:

<a ui-sref="colleague">colleague</a>

这是控制器代码:

function colCtrl() {
    debugger;
    console.log('type of employee is:', typeEmployee);
    if (typeEmployee === 'colleague') {
        console.log('not allowed to view this');
    }

    if (typeEmployee === 'manager') {
        console.log('allowed to view this');
    }
}

app.controller('colCtrl', colCtrl);

当我从控制器中获取代码并将其直接粘贴到路由器中时,它可以工作。我需要在代码中修复什么才能使用&#39; controller:colCtrl&#39;在我的路由器?

2 个答案:

答案 0 :(得分:2)

您在ggplot(bycountry1, aes(y = country, x = estimate, xmin = estimate - std.error * 2, xmax = estimate + std.error * 2)) + geom_vline(xintercept = 0, colour = "black", lty = 2) + geom_point() + geom_errorbarh(height = 0) + facet_grid(. ~ term, scales = "free") 内使用controller。您应该将其移动到状态配置对象的顶级。

resolve

以下是您的示例plunkr

答案 1 :(得分:0)

问题在于,您需要将Controller视为变量,而不是字符串。

controller: colCtrl

不是

controller: 'colCtrl'