Angularjs ui-router событие

0

У меня есть страница, которая использует угловой ui-router для отображения двух видов на одной странице. В конечном счете, мне нужно, чтобы этот прогон под телефонной связью/кордорой, поэтому придется загружать углы в элементы на событии deviceready.

Мне удалось инкапсулировать код в функцию, и когда функция вызывается в конце страницы, она отлично работает.

Однако, когда одна и та же функция вызывается на событие window.onload или document ready, она не работает. Фактически, если функция вызывается из самой консоли javascript после загрузки страницы, она просто не работает.

Нужна помощь в выяснении того, что именно происходит неправильно.

Код ниже

<html>
<head>
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<script src="js/jquery-2.1.4.min.js"></script>
<script src="js/angular.js"></script>
<script src="js/angular-ui-router.min.js"></script>
<script>

</script>   
</head>
<body>
<div ui-view="appview"> appview     </div>
<div ui-view="msgview"> messageview s</div>
<script>

var  routerApp;
var appViews = ['appview','msgview'];   


function zero()
{
    routerApp= angular.module('routerApp', ['ui.router']);
    x=$("body").attr("ng-app","routerApp");     
    for(var i=0;i<appViews.length;i++)
    {
        angular.bootstrap($("#" + appViews[i]), ["routerApp"]); 
    }

    routerApp.config(function($stateProvider, $urlRouterProvider) 
    {
        $urlRouterProvider.otherwise('/messaging');
        $stateProvider
        .state('messaging', 
        {
            url: '/messaging',
            views:
            {
                '':{templateUrl:'http://geo.tikoo.com/app/components/messaging/phone/messaging.html'},
                'msgview':
                {
                    templateUrl: 'http://geo.tikoo.com/app/components/messaging/phone/messaging.html',
                    controller: 'messC'
                }
            }

        });

    });
routerApp.controller('messC', function($scope) {

        $scope.username = 'Tom';
    });
}
zero();
//window.onload=zero;
//$(document).ready(function(){zero();}); 



</script>
</body>
</html>
Теги:
angular-ui-router

1 ответ

0

Выяснил это после нескольких попыток.

Вот что нужно сделать. 1. Сначала необходимо установить маршрутизаторы. 2. Атрибут для ng-app для элемента должен быть установлен следующим. 3. элемент angular.element(element).ready необходимо поймать в бутстрап

Понимание. Если маршрутизаторы не настроены сначала, то процесс начальной загрузки не выполняется (очевидно) Динамическое дополнение ng-app также нуждается в настройке маршрутизатора (интересно, что хром может работать в любом порядке, но мобильному браузеру/опера требуется, чтобы маршрутизатор был настроен первым перед атрибутом ng-app присваивается элементу).

SET ROUTERS ==> ADD ng-app Атрибут элемента ==> Bootstrap

Надеюсь это поможет

Ещё вопросы

Сообщество Overcoder
Наверх
Меню