2016-05-13 205 views
1

我想使用angular-ui-route,但是,在控制檯中沒有錯誤,stateProvider不起作用。我無法看到我的主頁(或任何其他)。StateProvider角度不工作,沒有錯誤

我錯過了什麼?

我app.js:

var app = angular.module('app', ['ui.router', 'pascalprecht.translate']) 
    .config(['$stateProvider', '$locationProvider', '$translateProvider', '$interpolateProvider', '$urlRouterProvider', 
    function($stateProvider, $locationProvider, $translateProvider, $interpolateProvider, $urlRouterProvider) { 
    $locationProvider.html5Mode(true); 
    $locationProvider.hashPrefix("!"); 

    $interpolateProvider.startSymbol('{[{'); 
    $interpolateProvider.endSymbol('}]}'); 

    $translateProvider.useStaticFilesLoader({ 
     prefix: '/static/languages/', 
     suffix: '.json' 
    }) 
    .preferredLanguage('pt-br'); 
    $translateProvider.forceAsyncReload(true); 
    $urlRouterProvider.when('', '/'); 
     $stateProvider.state('home', { 
     url: '/', 
     controller: "HomeCtrl as ctrl", 
     templateUrl:"/static/includes/home.html" 
     }).state('home.login', { 
     url: '/login', 
     templateUrl:"/static/includes/login.html" 
     }); 
    }]); 

回答

2

我用NG-視圖,而不是用戶界面視圖

0

你試試這個

$urlRouterProvider.otherwise("/"); 

而不是

$urlRouterProvider.when('', '/'); 
+0

是的,沒有工作仍然 – Gabrielle

+0

OK,就是它的泛音的絕對路徑? /static/includes/login.html 如果使用絕對路徑,例如不嘗試,如果你的應用程序在應用程序目錄比使用 /App//static/includes/login.html 也templateUrl是區分大小寫的。在上面的代碼中它是正確的,但只是在以下情況下,如果你有其他的東西在實際的代碼本身 – Wcan

+0

我有這個確切的問題,我改變我的角度的版本...早期版本的角度和ui.router是不兼容的其他。 – Wcan

0

應該 controller: "HomeCtrl"

研究所ead of

controller: "HomeCtrl as ctrl" 

控制器鍵只會取控制器的名稱。

+0

我改變了它,但沒有發生,它仍然沒有工作 – Gabrielle

+0

我試圖將我的app.js移動到一個文件夾,我不需要從根路徑獲取我的模板,但是這不起作用,你有什麼想法嗎? – Gabrielle

+0

由於我沒有這些文件,我從配置注入中刪除了$ locationProvider,$ translateProvider和$ interpolateProvider,因此從angular.module()中刪除了pascalprecht.translate。它工作得很好..所以我想這個問題可能與pascalprecht.translate .. @加布裏埃爾 –