15

単純なHTMLファイルのこのコードは機能します。

<script>
  function load() {
    alert("load event detected!");
  }
  window.onload = load;
</script>

ただし、AngularJS Webアプリのindex.htmlファイルに入れても、入れません。誰かがなぜそうしないのか知っていますか?

4

4 に答える 4

11

関数を呼び出すng-init

var app = angular.module('app',[]);
app.controller('myController', function($scope){
    $scope.load = function () {
        alert("load event detected!");
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app'>
  <div ng-controller='myController' ng-init='load()'></div>
</div>

于 2014-12-14T23:50:59.233 に答える
9

この種のコードを angular の app.run() 関数に入れることを好みます。

例えば

angular
.module('testApp', ['someModule'])
.constant('aConstant', 'hi')
.config(function($rootProvider) {/*some routing here*/})
.run(['$window', function($window) {
  $window.onload = function() {/*do your thing*/};
}]);

angular AngularJS app.run() documentationでいくつかのことが起こる順序を示すこの素敵な投稿もチェックしてください ?

于 2015-08-07T08:28:46.517 に答える
4

以下はうまくいくはずです:

jQuery(function(){ /** 私のウィンドウ オンロード関数 **/ })

とにかくangularはjqueryのサブセットを使用するため、本物を含めることもできます。

さらに良い
ことに、これを使用する代わりに、物事を初期化する角度のある方法を使用することを検討できます。

それは次のようになります: http://docs.angularjs.org/api/ng.directive:ngInit

< any ng-init="functionInController(something)"...

初期化まで非表示にするには: http://docs.angularjs.org/api/ng.directive:ngCloak

< 任意の ng-cloak .....

パーツ全体を初期化/カスタマイズするには: http://docs.angularjs.org/guide/directive

< 任意のディレクティブ名....

于 2012-10-28T19:03:33.917 に答える
3

試す

angular.element($window).bind('load', function() {
});
于 2013-09-12T08:55:52.193 に答える