在AngularJS中,如何在视图改变时加载脚本?
In AngularJS how can I load scripts when the View changes?
在AngularJS中,它可以使用ng-view路由页面的一部分。这对于较小的项目来说确实很好,但随着项目变大,由于无法在script标签中加载脚本,因此无法很好地扩展。我看过一些其他的帖子,但我不能得到一个解决方案的工作。我能让它工作的唯一方法(我认为这是一个hack,不工作的方式,我想它)是如果我包括所有的脚本在顶部的基础Index.html。
我想要的是当视图改变有Javascript文件,在视图的头部被加载,被加载在那一点,因为他们将在那一点实际使用,而不必在应用程序的开始预加载他们。
http://plnkr.co/edit/7LMv0j2sAcjigPuW7ryv?p =
预览在演示项目中,Index.html调用console.log命令,但我无法让page1或page2调用log命令。如有任何帮助,我将不胜感激。
我使用的是Angular 1.3.0 Beta 11
2件事,在你看来,你不需要写<html>
或<body>
标签,你已经在你的主页上有了这些。您应该看到该视图是主页面的一部分。
.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
相关文章:
- Google Adsense多次加载脚本
- 如何准确执行加载脚本&退出弹出窗口
- RequireJ无法随机加载脚本
- 通过浏览器加载页面时触发加载脚本(js或jQuery)'s”;返回“;作用
- 在以前的文件夹中加载脚本
- 如何重新加载脚本标记
- 正在脚本中加载脚本
- 在pjax完成其工作时加载脚本
- I'我用setTimeout加载脚本,你能找到一个更快的方法吗
- 在页面模板上加载脚本
- 如何在我的情况下创建加载脚本
- 当用$.getScript()加载脚本时,有一种方法可以从用$.get script()装载的脚本中调用父脚本中的函数
- 延迟加载 脚本加载和/或执行
- 如何使用谷歌页面速度CSS加载脚本延迟多个CSS文件
- 最后加载脚本
- 如何基于HTML中的类加载脚本
- 在局部视图中加载脚本文件
- 如何防止在使用hapi.js reply().hold()时重新加载脚本
- 异步加载脚本
- 脚本加载脚本广告