在AngularJS中,它可以使用 ng-view 路由页面的一部分。这对于较小的项目来说非常好,但随着项目变得越来越大,由于无法在脚本标记中加载脚本,因此无法很好地扩展。我已经看过其他一些关于此的帖子,但我无法找到解决方案。我可以让它工作的唯一方法(我认为它是一个黑客并且不按照我希望的方式工作)是我将所有脚本包含在基础 Index.html的顶部
我想要的是当视图发生变化时,在加载View的标题中加载Javascript文件,因为它们将在那时实际使用,而不必预先加载他们在申请开始时。
http://plnkr.co/edit/7LMv0j2sAcjigPuW7ryv?p=preview
在演示项目中,Index.html调用了console.log命令,但我无法通过page1或page2来调用log命令。任何帮助将不胜感激。
我使用的是Angular 1.3.0 Beta 11。
答案 0 :(得分:0)
2件事,在您看来,您不必撰写<html>
或<body>
标签,您已经在主页上找到了这些标签。您应该将视图视为主页的一部分。
第二,要向您的视图添加javascript,您可以将控制器添加到视图中,如下所示:
.config(function ($routeProvider) {
$routeProvider
.when('/page1', {
templateUrl: 'page1.html',
controller: function ($log) {
$log.info('page 1');
}
})
.when('/page2', {
templateUrl: 'page2.html',
controller: function ($log) {
$log.info('page 2');
}
});
});
也可以将控制器添加到这样的视图中:
var app = angular.module('routeApp', ['ngRoute'])
.config(function ($routeProvider) {
$routeProvider
.when('/page1', {
templateUrl: 'page1.html',
controller: function ($log) {
$log.info('page 1');
}
})
.when('/page2', {
templateUrl: 'page2.html',
controller: 'ViewController'
});
});
app.controller('ViewController', function ($log) {
$log.info('page 2');
})
我更新了你的plunker:Here