2016-10-01 65 views
0

在我的Ionic應用程序中,我有一個頁面「order.html」處於子狀態。我想讓這個頁面加載另外兩個頁面(「orderheaderdetail.html」和「orderitemdetail.html」)。我定義了「ui-view」來加載另外兩頁(例如「orderheaderdetail」和「orderitemdetail」)。我不知道這是否是正確的做法。但它似乎不起作用。 「A」頁的HTML是如下:在子狀態下嵌套視圖

<ion-view title="Order"> 
    <div ng-controller="OrderDetailController"> 
     <ion-content> 
      <div layout="row"> 
       <div class="panel" flex="70" flex="100" flex-sm="70"> 
        <div class="panel" flex="90"> 
         <div ui-view="orderheaderdetail"> 
         </div> 
         <div ui-view="orderitemdetail"> 
         </div> 
        </div> 
       </div> 
      </div> 
     </ion-content> 
    </div> 
</ion-view> 

雖然路由代碼如下:

.state('protected.order', { 
      url: '/order/:_id/', 
      views : { 
       'menuContent' : { 
         templateUrl: 'templates/order.html', 
         controller: 'OrderDetailController' 
       }, 

       'orderheaderdetail' : { 
         templateUrl: 'templates/orderheaderdetail.html', 
         controller: 'OrderDetailController' 
       }, 
       'orderitemdetail' : { 
         templateUrl: 'templates/orderitemdetail.html', 
         controller: 'OrderDetailController' 
       },    
      } 
     }) 

我無法改變「order.html」的狀態改變成抽象的,因爲它必須是在孩子狀態。所以基本上就像一個有其他孩子狀態的孩子狀態。任何想法如何解決這個問題?謝謝

回答

0

您可以爲要加載的ui視圖定義一個更多的狀態。 YOu應該使用$state.go('protected.order.detail')轉到該視圖。

.state('protected.order', { 
     url: '/order/:_id', 
     views : { 
      'menuContent' : { 
        templateUrl: 'templates/order.html', 
        controller: 'OrderDetailController' 
      }    
     } 
    }) 
.state('protected.order.detail', { 
     url: '/detail', 
     views: { 
      'orderheaderdetail' : { 
        templateUrl: 'templates/orderheaderdetail.html', 
        controller: 'OrderDetailController' 
      }, 
      'orderitemdetail' : { 
        templateUrl: 'templates/orderitemdetail.html', 
        controller: 'OrderDetailController' 
      } 
     } 
}) 
+0

謝謝是的,它的工作,但我認爲我需要創建兩個新的控制器,而不是OrderDetailController – nadinugraha

+0

是的,這就是問題,當你在你的狀態定義視圖,你不能定義一個公共控制器 –

0

你的孩子的意見應與@參考定義,像這樣

  '[email protected]' : { 
        templateUrl: 'templates/orderheaderdetail.html', 
        controller: 'OrderDetailController' 
      }, 
      '[email protected]' : { 
        templateUrl: 'templates/orderitemdetail.html', 
        controller: 'OrderDetailController' 
      },  

我不知道這是否應該是[email protected]@order[email protected]雖然。所以你應該嘗試兩個