Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS中,视图更改时如何加载脚本?_Javascript_Angularjs_Requirejs_Angularjs View - Fatal编程技术网

Javascript 在AngularJS中,视图更改时如何加载脚本?

Javascript 在AngularJS中,视图更改时如何加载脚本?,javascript,angularjs,requirejs,angularjs-view,Javascript,Angularjs,Requirejs,Angularjs View,在AngularJS中,它能够使用ng视图路由页面的一部分。这对于较小的项目来说非常好,但是随着项目变大,由于无法在script标记中加载脚本,它的伸缩性不太好。我已经看到了其他一些关于这方面的帖子,但我无法找到一个解决方案。我可以让它工作的唯一方式,我认为它是一个黑客,不工作的方式,我希望它是如果我包括所有的脚本在顶部的基础索引。 我想要的是,当视图更改为在加载的视图头中加载Javascript文件时,因为它们将在该点实际使用,而不必在应用程序开始时预加载它们 在演示项目中,Index.htm

在AngularJS中,它能够使用ng视图路由页面的一部分。这对于较小的项目来说非常好,但是随着项目变大,由于无法在script标记中加载脚本,它的伸缩性不太好。我已经看到了其他一些关于这方面的帖子,但我无法找到一个解决方案。我可以让它工作的唯一方式,我认为它是一个黑客,不工作的方式,我希望它是如果我包括所有的脚本在顶部的基础索引。 我想要的是,当视图更改为在加载的视图头中加载Javascript文件时,因为它们将在该点实际使用,而不必在应用程序开始时预加载它们

在演示项目中,Index.html调用console.log命令,但我无法让page1或page2调用log命令。任何帮助都将不胜感激


我正在使用Angular 1.3.0 Beta 11。

2件事,在你看来,你不必写或标记,你已经在主页上找到了它们。您应该将视图视为主页的一部分

其次,要将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');
})
也可以将控制器添加到视图中,如下所示:

.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: