在angularjs中加载页面时加载javascript

时间:2017-08-04 08:18:49

标签: angularjs angularjs-directive angularjs-scope

我尝试这种方法,但它不适合我,我是AngulartJS的初学者

var getDb = angular.module('dataapp', [])
  .controller('datagetcontroller', function ($scope,$window) {
    $window.onload = function(){
      alert('this is test')
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
<tr ng-app="dataapp" ng-controller="datagetcontroller"><td>loremipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td></tr>

提前感谢。

- UPDATE-- 也许我有问题,因为在新页面加载之前我通过

使用页面重定向
  

window.location.href

,这有助于我重定向到我需要执行javascript的页面。

3 个答案:

答案 0 :(得分:2)

    var getDb = angular.module('dataapp', [])
    .controller('datagetcontroller', function ($scope) {
    //assign to scope function
    $scope.load = function() {
           alert("Window is loaded");
     }}});



 <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script>
//call load function in ng-init
<tr ng-app="dataapp" ng-controller="datagetcontroller" ng-init="load()"><td>loremipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td><td>Lorem ipsum</td></tr>

答案 1 :(得分:1)

  

我还添加了一个工作的plunkr https://plnkr.co/edit/DD0BeZLqZbZcoxCDNi1g?p=preview。   假设你的.js文件是script.js,它看起来像:

     

var getDb = angular.module('dataapp', [])
.controller('datagetcontroller', function ($scope,$window) { $window.onload = function(){ alert('this is test') } });

     
    

并且你的html页面是index.html,其中head应该看起来像:           <head> <link rel="stylesheet" href="style.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js"></script> <script src="script.js"></script> </head> <body ng-app="dataapp"> <table> <tr ng-controller="datagetcontroller"> <td>loremipsum</td> <td>Lorem ipsum</td> </tr> </table> </body>

  
     

应该可以正常工作。我想你还没有声明 script.js   在您编写javascript的index.html中的文件。也   请注意,您必须将 angular.min.js 脚本置于上方    script.js 因为角度需要先加载,以便script.js理解代码。

答案 2 :(得分:0)

这是我的解决方案

&#13;
&#13;
angular.element(window).bind('load', function() {
    
});
&#13;
&#13;
&#13; 我的角度不起作用的其他原因是一个简单的错误,我没有权利使用多个ng-app =&#34;&#34;在一个html文件中