使用指令打破角度的ng-view,如何?

时间:2014-04-22 21:54:34

标签: javascript angularjs layout angularjs-directive

我有一个index.html:

<body ng-app="app">
    <topmenu></topmenu>
    <div ng-view=""></div>

然后在views文件夹中main.htmltopmenu.html

有一条路线:

.when('/', {
    templateUrl: 'views/main.html',
    controller: 'MainCtrl'
})

和指令

var App = angular.module('app', []);

App.directive('topmenu', function () {
    return {
        replace: true,
        restrict: 'E',
        templateUrl: 'views/topmenu.html'
    };
});

问题是,当我添加directive.js文件并放置<topmenu></topmenu>标记时,main.html不再加载

任何想法?

2 个答案:

答案 0 :(得分:2)

在您的指令文件中,您不需要再次使用您的模块和依赖项初始化变量。所以这个:

var App = angular.module('app', []);
应该从该文件中删除

答案 1 :(得分:1)

在directive.js

删除它,它将创建一个名为&#39; app&#39;

的新角度模块
var App = angular.module('app', []);

如果你想从角度获取模块,你可以做

var App2 = angular.module('app');
console.log(App === App2) // true

并确保您已经创建了自己的应用程序&#39;加载directive.js之前的模块,

例如,如果你有2个JS文件

<script src="index.js"/>
<script src="directive.js"/>
index.js中的

var App = angular.module('app', []);