2015-01-06 52 views
1

我的angular-ui-router存在一些問題。當我點擊一個UI的SREF我得到的消息Angular-ui-路由器沒有默認狀態,不能從它轉換

"Error: Could not resolve 'X' from state '' 
[email protected]:/ 

X網站頭,我試圖去的狀態。

我認爲這意味着沒有默認狀態,但我不確定。在這裏任何情況下,是什麼,我認爲是相關文件的部分:

的index.html

<div class="container" ng-cloak> 
    <a ui-sref="home"></a> 
    <div ui-view></div> 
</div> 

app.config.js

angular.module('fTA') 
    .config(function($urlRouterProvider, $stateProvider) { 
     $urlRouterProvider.otherwise('/'); 

     $stateProvider.state('home', { 
      url: '/', 
      template: '<p>This is home view</p>' 
     }); 

     $stateProvider.state('login' { 
      url: '/login', 
      templateUrl: '/views/login.html', 
      controller: 'LoginCtrl' 
     }); 
    }); 

凡/視圖/登錄。 html是我目錄中文件的路徑名。

我的理解是,因爲urlRouterProvider是'/',所以我應該在'/'處看到<p>This is home view</p>。但我不知道。所以,我做了什麼遲鈍的事情,以至於即使硬編碼模板也不顯示。

+0

你嘗試將狀態從'/'重命名爲'home'? –

+0

@RadimKöhler是的,它是一樣的。 X就是這種情況。 – CallMeNorm

+0

如果州名是'home',那麼'ui-sref =「home」應該可以工作。無論如何,我會建議在國家名稱中使用home而不是'/'。另外,(真的不知道這裏),但不會你的'ng-include =「''替換div的內容,並且刪除'RadiusKleh'

' –

回答

1

我只是created a plunker here - 和改變的只有一件事:加逗號 '登錄'

$urlRouterProvider.otherwise('/'); 

    $stateProvider.state('home', { 
     url: '/', 
     templateUrl: 'tpl.html' 
    }); 

// $stateProvider.state('login' { 
    $stateProvider.state('login', { 
     url: '/login', 
     templateUrl: 'tpl.html', 
     controller: 'LoginCtrl' 
    }); 

後,這是現在的工作:

<a ui-sref="home">home</a> 
    <a ui-sref="login">login</a> 

工作plunker here

+0

我認爲看起來不同的是templateUrl。在你的運動員中,你有一個ng模板。 templateUrl也是什麼關係? index.html的? – CallMeNorm

+1

這是很好的地方..我會肯定地說,試試:templateUrl:'views/login.html',不帶斜槓 –

+1

感謝您的幫助。這個問題最終導致我沒有在index.html中包含app.config.js。我知道這是愚蠢的。謝謝你的幫助。 – CallMeNorm

相關問題