2015-12-26 1 views
3

Я попытался перенести свое угловое приложение с помощью ngRoute на uiRoute. Все работает отлично, за исключением контроллеров. Они просто не загружаются, как в ngRoute, и я не понимаю почему. Как я вижу из uiRoute, он должен работать как с ngRoute, но это не так. Исключено исключение. Я также не нашел никакого примера для подобной конфигурации, такой как моя, хотя это очень просто. Я дома, кто-нибудь может сказать мне, где мой контроллер скрывается.angular-ui-router загружает только шаблон, но не контроллер не загружен

http://plnkr.co/edit/VGyi3AxgslgpvwBCTkXI?p=preview

Так за ngRoute контроллер должен быть доступен через «домашнюю страницу», но, похоже, это просто пустой :(

;(function(angular) { 
'use strict'; 

angular 
.module('MainRouter', ['ui.router']) 
.config(['$stateProvider', function($stateProvider) { 
    $stateProvider 
    .state('home', { 
     url: '', 
     views: { 
     "mainView": { 
      templateUrl: 'home.html' 
     } 
     }, 
     controller: 'HomepageCtrl', 
     controllerAs: 'homepage' 
    }); 
}]); 
})(angular); 

ответ

2

При использовании views опции внутри определения состояния, то ui-router двигатель не ищет templateUrl & controller определяется на государственном уровне, в основном вам необходимо предоставить controller & templateUrl значение от namedView. В вашем случае вы должны добавить контроллер в объект определения mainView.

Код

.config(['$stateProvider', function($stateProvider) { 
    $stateProvider 
    .state('home', { 
     url: '', 
     views: { 
     "mainView": { 
      templateUrl: 'home.html', 
      controller: 'HomepageCtrl', 
      controllerAs: 'homepage' 
     } 
     }, 
    }); 
}]); 

Demo Plunkr

+0

Спасибо большое. Я как-то убедился, что контроллеры являются глобальными для самого государства. Но я думаю, что именно так я бы это сделал: D – DaSch

+0

@DaSch Рад помочь вам. Спасибо :) –

Смежные вопросы