ng-init
ma działać w ten sposób, ponieważ jest on używany do inicjalizacji danych.
bardzo prosty przykład:
<ul ng-init="list = [1,2,3,4]">
<li ng-repeat="l in list"></li>
</ul>
Jeśli próbujesz uruchomić coś czasie, gdy obciążenia regulatora, to faktycznie dużo prostsze niż myślisz:
app.controller('mainCtrl', function ($scope) {
var init = function ($scope) {
// do whatever you need to do to initialize your controller
$scope.someData = ["Hey", "I'm", "Alive"]
$scope.otherData = localStorage.getItem('myBackup')
}
init()
})
Albo jeszcze prościej, jeśli nie potrzebujesz tej funkcji (żadnych zamknięć ani żadnych innych)
app.controller('mainCtrl', function ($scope) {
// do whatever you need to do to initialize your controller
$scope.someData = ["Hey", "I'm", "Alive"]
$scope.otherData = localStorage.getItem('myBackup')
})
Edit - zakładając używasz ngView
:
Aby mieć uruchomić kod na, gdy strona jest w pełni załadowany należy ustawić obserwatora na razie $viewContentLoaded
, tak:
$scope.$on('$viewContentLoaded', function(){
//Here your view content is fully loaded !!
});
app.controller('mainCtrl', function ($scope) {
// This event is triggered when the view has finished loading
$scope.$on('$viewContentLoaded', function() {
$scope.someData = ["Hey", "I'm", "Alive"]
$scope.otherData = localStorage.getItem('myBackup')
})
})
który jest jak to działa – Mosho
masz ten sam problem z problemem tutaj [enter opis Link tutaj] [1] [1]: http://stackoverflow.com/questions/17104639/ng-init- ng-controller-strange-behaviour-in-the-controllers-scope – ThomasP1988
Jestem zaskoczony tym pytaniem, czy jest to problem, który działa w sposób, w jaki zauważyłeś, że działa (i jak jest zaprojektowany do pracy?). Jakiej odpowiedzi szukasz poza tym dostarczonym przez @Mosho? – Jens