AngularJS:在自定义指令中的ngView

时间:2015-04-09 11:54:07

标签: javascript angularjs angularjs-directive ng-view

我试图在自定义指令中使用ng-view,但它无效,而且它也没有给我任何控制台错误。

这是我的指示:

(function() {
    'use strict';

    angular
        .module('app')
        .directive('header', Header);

    Header.$inject = ['USER_AGENT'];

    function Header(USER_AGENT) {
        return {
            restrict: 'A',
            templateUrl: 'app/shared/header/header.html',
            controller: controller
        }

        function controller($scope) {
            $scope.isMobile = USER_AGENT.isMobile;
        }
    }

})();

header.html文件中,我打电话给ng-view,就像我在外面打电话一样(当它工作时)。 是否可以将ngView嵌套在自定义指令中?

2 个答案:

答案 0 :(得分:2)

AngularJS在一个应用中不支持多个ng-view。如果你想要它 - 你必须使用另一个路由引擎,例如Angular UI的ui-router

答案 1 :(得分:0)

即使您可以使用它,也不应该因为不是Angular的正确方法directive应被视为 web组件,如input,{{ 1}}等等。

请记住,您的select只是一个视图,几乎可以被任何东西使用,只是视图

header.html

或(使用ui-router

.directive('myDirective', function($timeout) {
  return {
    restrict: 'A',
    templateUrl: 'app/shared/header/header.html',
    controller: controller
});