指令中的链接功能是否通过路由运行?

时间:2014-07-28 18:51:25

标签: javascript angularjs

我一直在谷歌上搜索一段时间,但我找不到直接答案。

如果我有像这样的Todo应用程序的文件结构:

app.js
index.html
 -- Todo
  | -- todo.html
  | -- todoModule.js
  | -- todoController.js
  | -- todoDirective.js
 -- Routes
  | -- routes.js

todoDirective.js我有:

myApp.directive('todoDirective', [function() {
    function link(scope, element, attrs) {
        console.log('todo directive');
    };

    return {
        restrict: 'E',
        link: link,
        templateUrl: 'todo.html'
    };
}])

routes.js我有:

myApp.config(['$routeProvider', function($routeProvider) { 'use strict';
    $routeProvider
        .when('/', {
            templateUrl: '/todo',
            controller: 'todoController'
        })
        .otherwise({
            redirectTo: '/'
        });
}]);

我认为我会看到'todo directive'输出到控制台吗?

我有一个更大的应用程序我正在研究并且最近发现我似乎无法从给定的指令链接函数访问DOM。我对Angular的工作方式有误解吗?

你能给予的任何见解都会很棒。谢谢。

1 个答案:

答案 0 :(得分:1)

指令链接/控制器在html页面上创建它的实例时执行。它与路线无关。

如果模板附有路线,例如'/todo.html'包含一个指令元素,然后它将运行其链接/控制器函数...