2016-11-18 18 views
0

現時点では、ui-routerを使用して角型アプリケーションを開発中ですが、次のエラーメッセージが表示されます。UIルータは状態エラーメッセージを解決できません

Error: Could not resolve 'static.about' from state 'static'

なぜわからないのですか?私が達成したいのは、私のアプリケーション、静的セクション、ホームページ、about、login、register、そしてダッシュボード、ユーザープロファイルなどのようなアプリ側の2つのセクションを持つことです。私は、

app 
.config(['$stateProvider', '$urlRouterProvider', 
function($stateProvider, $urlRouterProvider){ 
// any unknown URLS go to 404 
$urlRouterProvider.otherwise('/404'); 
// no route goes to index 
$urlRouterProvider.when('', '/home'); 
// use a state provider for routing 
$stateProvider 
    .state('static', { 
     url: '/home', 
     templateUrl: '', 
     views : { 
      header : { 
       templateUrl : 'app/components/shared/header.html' 
      }, 
      main: { 
       templateUrl : 'app/components/home/views/home.view.html' 
      } 
     } 
    }) 
    .state('static.about', { 
     // we'll add another state soon 
     url: '/about', 
     templateUrl: 'app/components/about/views/about.view.html', 
    }) 
    .state('app', { 
     abstract: true, 
     templateUrl: '' 
    }) 
    .state('app.dashboard', { 
     url: 'app/dashboard', 
     templateUrl : '', 
    })   
}]); 

しかし、これは既に説明したエラーを返します。なぜなら、私はこれをセットアップしたいのですが、アプリケーションの2つの側面も非常に異なるレイアウトを持っているので、別のレイアウトを私の中に押し入れることができるはずです。

しかし、私が抱えている最大の問題はエラーであり、次にリンクが生成されていることです。これについては約クリックすると/ home/aboutに行きます。

私は早い段階で達成したいと思っていますすべては、NAVを共有し、交換可能なメインセクションを持っている私の「静的」ページのためのものであり、「アプリ」のページがcompletly新しいレイアウト/親テンプレート

答えて

0

を持っているため子ビューでparentプロパティを設定する必要があります。

.state('static.about', { 
    url   : '/about', 
    templateUrl : 'app/components/about/views/about.view.html', 
    parent  : 'static' 
}) 

もこの質問Angular ui-router : Parent & Child Viewsに答えを確認してください。

$state.go(static.about)を実行すると、otherwiseなどと類似しているため、homepageになると思います。

同様:何かが大丈夫でないとき$urlRouterProvider.when('', '/home');

Angular-Ui-Routerはメインrouteを解決します。

templateUrlの末尾に追加する,にも注意してください。

0

上記の状態の構築はOKです。私たちはただtemplateUrlを使用していない「静的」ルート状態plunker to demonstrate it here

を作成し、我々はviews : {}

.state('static', { 
     url: '/home', 
     // we want to have views : {} so avoid this shorthand template 
     // templateUrl: '', 
     views: { 
     header: { 
      templateUrl : 'app/components/shared/header.html', 
     }, 
     main: { 
      templateUrl : 'app/components/home/views/home.view.html', 
     } 
     } 
    }) 

と子状態を定義しないので...それは、とにかくスキップされます'静的。「について

<a ui-sref="static"> 
<a ui-sref="static.about"> 

がアクションhere

エラーでそれを確認し、すべてが機能している

.state('static.about', { 
     // here we use a switch to inform - this url starts from root 
     //url: '/about', 
     url: '^/about', 
     templateUrl: 'app/components/about/views/about.view.html', 
    }) 

そして、これらの呼び出しを使用して、root

からそのURLをリセットするには、'^'先頭に符号を使用することができますメッセージ:

Error: Could not resolve 'static.about' from state 'static'

通常、状態定義(または呼び出し側)にタイプミスがあるとします。しかし、それは問題ではありません。または、定義ファイルをロードするのを省略すると...

0

static.aboutに行くときにスタティックからヘッダーを使用すると、完全に新しいUIを定義したくないようです。

  1. static.about「静的@メイン」と呼ばれるプロパティを持つオブジェクトである必要があり、値があなたのtemplateUrlと別のオブジェクトである必要があり、プロパティビューの追加からtemplateUrlを削除します。

詳細情報:https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views

関連する問題