2016-05-19 3 views
0

У меня есть приложение PhoneGap, которое содержит несколько html-страниц.AngularJS выполняет код при смене страниц, использующих тот же контроллер

Я использую один контроллер под названием AppController, который загружает данные для экрана запуска и страниц по умолчанию.

Я добавил новую страницу в навигационную панель, которая при нажатии кнопки & должна загружать данные с сервера с помощью php-вызова, поэтому при отображении страницы он должен делать только php-вызов.

Эта страница использует тот же контроллер, что и остальные приложения.

Я действительно новичок в AngularJS, так что я мог бы я запрограммировал его в плохом состоянии, но остальная часть данных для домашней страницы загружается в AppController как этот

myApp.controller('AppController', function ($scope, $timeout, sharedProperties) { 
    $scope.items= {}; 
    $scope.items[item1] = {....} //LOADING UP the items collection 
} 

Как я могу подключить событие «onload» или что-то еще, что будет срабатывать только при показе страницы?

+0

И почему бы не использовать службу определения местоположения $ - https://docs.angularjs.org/api/ng/service/$location? –

+0

Контрольный код запускается точно, когда становится показано –

+0

'$ rootScope.on ('$ routeChangeSuccess', cb)' также может быть полезно. –

ответ

1

Есть так много способов, вы можете сделать это, один из них:

// inside your controller 
angular.element(document).ready(function() { 

// your code 

}); 

еще одно:

<div ng-controller="myCtrl" ng-init="someinitfunc()"></div> 
+0

Я использовал ng-init! Спасибо! – Laureant

+0

Поскольку вы можете использовать маршруты, правильный путь является первым. – daniel

0

Как об использовании нг-инициализации директивы() на следующей странице?