AngularJS:动态编译器指令

时间:2013-11-05 10:03:22

标签: javascript angularjs directive

这是[plunker]:http://plnkr.co/edit/iPsyEAIQWxJIJuneZb8B?p=preview

我想要的是当我点击登录时,auth指令应该自动将模板更改为'logout.html',然后当点击注销时,切换到使用'login.html'。 但到目前为止,我应该手动刷新页面来制作切换模板的指令。

我如何达到这个目的?

2 个答案:

答案 0 :(得分:1)

使用路线。

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/login', {
            templateUrl: 'login.html',
            controller: 'loginCtrl'
        })
        .when('/logout', {
            templateUrl: 'logout.html',
            controller: 'logoutCtrl'
        })
}]);

然后你做$ location.path('/ logout')或$ location.path('/ login')

这是教程: http://docs.angularjs.org/tutorial/step_07

答案 1 :(得分:0)

我修复了你的掠夺者的几个错误。查看here

您的主要错误是$ watch表达式。它应该是scope.$watch('authed', function () {});而不是scope.$watch(scope.authed, function () {});

我也玩了一下,然后想出了this version。我们的想法是将登录/注销逻辑与cookie操作分开,并摆脱显式DOM操作,$ compile()等。