0

私はこのプロジェクトをイオンで行いました。私は、まさに私たちがタブで指定されたtab-home UIビューが存在しなければならないことを推測することができますtab.home定義からthis post複数の抽象ビューは機能しません - イオン

angular_app = angular.module 'starter' 

angular_app.config ($stateProvider,$urlRouterProvider)-> 
    $stateProvider 
    .state 'tab',{ 
    url : '/tab' 
    abstract : true 
    templateUrl : 'templates/tabs.html' 
    } 
    .state 'tab.home',{ 
    url : '/home' 
    views : { 
     'tab-home' : { 
     templateUrl : 'templates/home.html' 
     } 
    } 
    } 
    .state 'tab.searcher',{ 
    url : '/searcher' 
    abstract : true 
    templateUrl : 'templates/template-searcher.html' 
    } 
    .state 'tab.searcher.ingredients',{ 
    url : '/ingredients' 
    views : { 
     'tab-ingredients' : { 
     templateUrl : 'templates/ingredients-searcher.html' 
     } 
    } 
    } 
    return 

答えて

0

のようにそれを行うが、しかし、それは、動作しません。 tab.searcherは独自のテンプレートを持つタブの子ですが、ではなく、という名前のui-viewに挿入されています。

状態の構成を模倣し、論理的に意味をなさない(テンプレートのui-viewsと状態オブジェクトのビュー定義という名前の)最小限の変更を加えたスニペットを追加しました。

他の問題があるかどうかお調べください。

angular.module('TestApp', ['ui.router']) 
 
    .config(function($stateProvider, $urlRouterProvider, $locationProvider) { 
 
    $stateProvider 
 
     .state('tab', { 
 
     url: '/tab', 
 
     abstract: true, 
 
     template: '<div ui-view="tab-home"></div>' 
 
     }) 
 
     .state('tab.home', { 
 
     url: '/home', 
 
     views: { 
 
      'tab-home': {template: 'Tab Home'} 
 
     } 
 
     }) 
 
     .state('tab.searcher', { 
 
     url: '/searcher', 
 
     abstract: true, 
 
     views: { 
 
      'tab-home': { 
 
      template: 'Tab Searcher <div ui-view="tab-ingredients"></div>' 
 
      } 
 
     } 
 
     }) 
 
     .state('tab.searcher.ingredients', { 
 
     url: '/ingredients', 
 
     views: { 
 
      'tab-ingredients': {template: 'Ingredients!'} 
 
     } 
 
     }); 
 

 
    //$urlRouterProvider.otherwise("/tab/home"); 
 
    $urlRouterProvider.otherwise("/tab/searcher/ingredients"); 
 
    //$locationProvider.html5Mode(true); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.12/angular.js"></script> 
 
<script src="https://unpkg.com/[email protected]/release/angular-ui-router.js"></script> 
 

 
<div ng-app="TestApp"> 
 
    <div ui-view></div> 
 
</div>

直接のUIビューはテンプレートをレンダリングする必要があるという名前を定義することも可能であることに注意してください。 例:指定されたUIビューのルートのテンプレートをに設定します。名前のUIビューに設定されたテンプレートNAV B

.state('a.b.c', { 
    // ... 
    views: { 
     '[email protected]': {template:'Foo'}, 
     '[email protected]': {template:'Bar'} 
    } 
}) 
+0

tab' 'に'タブhome'ビューがあるなぜホーム]タブには、の子であるので、私は、理解していませんタブの状態ですが、唯一可能なビューではありません – Xalsar

+0

同じビューで複数のtemplateUrlを持つことができればいいかもしれませんが、今はできません。 – Xalsar

+0

'ui-view ="タブ-home "はタブ状態の* named *ビューです。タブ状態の子は、この* ui-view *のテンプレートを指定できます。スニペットの下で述べたように、複数の名前付きビューを持つことは可能です。詳細はこちら:https://github.com/angular-ui/ui-router/wiki/Multiple-Named-Views – dinony

関連する問題