此代碼:在window.onload不以簡單的HTML文件工作,AngularJS
<script>
function load() {
alert("load event detected!");
}
window.onload = load;
</script>
但是,如果我把它變成一個AngularJS的Web應用程序的index.html文件,它沒有。有人知道爲什麼不?
此代碼:在window.onload不以簡單的HTML文件工作,AngularJS
<script>
function load() {
alert("load event detected!");
}
window.onload = load;
</script>
但是,如果我把它變成一個AngularJS的Web應用程序的index.html文件,它沒有。有人知道爲什麼不?
下面應該工作:
的jQuery(函數(){/ **我的窗口的onload功能** /})
因爲角用了jQuery的一個子集,反正你也可能包括真實的東西。
更好的是:
而不是使用這個的,你可以考慮使用的初始化的東西角方式:
,這將是:http://docs.angularjs.org/api/ng.directive:ngInit
<任何NG-的init =「functionInController (東西)「...
使其不可見,直到init:http://docs.angularjs.org/api/ng.directive:ngCloak
<任何NG-斗篷.....
初始化/定製整體部分:http://docs.angularjs.org/guide/directive
<任何指令名....
與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>
我也有同樣的問題,我使用$ window.load來檢查是否所有的圖像已加載,所有映像加載後init都不會調用。它在此之前開火。 –
你不應該使用'ng-init'這樣的東西:https://docs.angularjs.org/api/ng/directive/ngInit –
@Petr Peller可能,但它可以工作 – Muhammed
我更喜歡把這種代碼在角的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*/};
}]);
還要檢查這個好貼,描述的順序,有些事情發生在角 AngularJS app.run() documentation?
不是說兩個東西是不兼容的,但如果你花時間來寫一個angularJS應用程序,然後你應該看起來爲您的加載功能找到一個更好的家。連接到頂層HTML元素的控制器可能會這樣做。 –
我們需要更多的信息......一件事。您的代碼完美無瑕地爲我工作。另一件事,你想做什麼? Roy Truelove是絕對正確的,你可能不需要在角度應用中使用window.onload。 –
謝謝@RoyTruelove和blesh。我只是嘗試從index.html執行代碼,並且這次它工作。我不知道發生了什麼變化。你可能是正確的不需要window.onload。我會嘗試另一種方式。 – Curt