2013-04-29 19 views
15

Mam kłopoty za pomocą wtyczki ui-router z angularjs:

angular.module('myApp', []). 
config(['$routeProvider', '$stateProvider', function($routeProvider, $stateProvider) { 
    $stateProvider 
     .state('mandats', { 
      url: '/domiciliations/mandats', 
      templateUrl: 'domiciliations/views/mandats.html', 
      controller: 'mandatsCtrl' 
     }); 
}]) 

I wtedy ten błąd przy starcie:

Unknown provider: $stateProvider 

I włączyłem javascripts w tej kolejności:

<script src="/Scripts/libs/angular/angular.js"></script> 
<script src="/Scripts/libs/angular/angular-resource.js"></script> 
<script src="/Scripts/libs/angular/angular-ui-states.js"></script> 

Co może być problemem?

[EDIT]

Muszę pozbyć się komunikatu o błędzie, dodając „ui.compat” jako zależność MojaApl. Widziałem to w przykładowym kodzie ui-routera, ale nigdzie w dokumentacji. O czym to jest ?

Mimo to nadal nie działa. Dodałem ui-view do div w pliku indeksu aplikacji. Ale strona pozostaje pusta.

+0

Czy należy wymienić co wersja kątowa używasz? –

Odpowiedz

14

Poniższy fragment kodu powinien wykonać zadanie. Przynajmniej w moim przypadku, więc daj mi znać, czy to działa, czy nie.

angular.module('myApp', ['ui.compat']). 
config(['$routeProvider', '$stateProvider', function($routeProvider, $stateProvider) { 
    $stateProvider 
     .state('mandats', { 
      url: '/domiciliations/mandats', 
      templateUrl: 'domiciliations/views/mandats.html', 
      controller: 'mandatsCtrl' 
     }); 
}]) 

Teraz o problemie z pustą stroną. Na pewno adres URL w przeglądarce nie jest zgodny z żadnym określonym w twoim stanie. Wypróbuj to "#/domiciliations/mandats" w przeglądarce i sprawdź, czy widok zostanie odpowiednio renderowany. Nie, aby absolutny URL był podobny do http: // [HOST_NAME] /home.html#/domiciliations/mandats.

+0

Tak jak powiedziałem w poprzedniej odpowiedzi, właśnie to zrobiłem. Zaznaczę twoją odpowiedź jako odpowiedź;) Dzięki. – Sam

+1

Próbowałem tego, a kątowe nie mogło być "ui-compat"; błąd poniżej Niepowodzenie Błąd: [$ injector: modulerr] Nie udało się utworzyć instancji modułu myApp z powodu: Błąd: [$ injector: modulerr] Nie można utworzyć instancji modułu ui.compat z powodu: Błąd: [$ injector: nomod] Module ' ui.compat "nie jest dostępny! Błędnie wpisałeś nazwę modułu lub zapomniałeś go załadować. Jeśli rejestrujesz moduł, upewnij się, że określasz zależności jako drugi argument. –

12

Wystarczy dołączyć moduł ui-router jako zależność.

jak po

angular 
    .module('myApp', ["ui.router"]) 
    .config(['$routeProvider', '$stateProvider', function($routeProvider, $stateProvider) { 
     ... 
    }]); 
+0

Gdzie zamykasz tablicę w '.config'? –

Powiązane problemy