2016-11-27 109 views
1

我有狀態問題(我不明白它是如何工作的)。離子狀態不工作

好吧我app.js代碼視圖這樣的:

.... 
app.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { 
// $ionicConfigProvider.views.transition('none'); 
$stateProvider 
      .state('app', { 
      url: '/app', 
      templateUrl: 'tpl/home.html', 
      controller: 'AppController', 
      abstract: true 
      }) 
      .state('app.aquarium', { 
      url: '/aquarium/index', 
      views: { 
       'menuContent': { 
       templateUrl: 'tpl/aquarium/index.html', 
       controller: 'AquariumIndexCtrl', 
       } 
      } 
      }) 
.... 
    $urlRouterProvider.otherwise('/app/aquarium/index'); 

.... 

app.controller('AppController', function($scope) { 
    console.log("App"); 
}); 
app.controller('AquariumIndexCtrl', function($scope) { 
    console.log("Akwaria"); 
}); 
.... 

和index.html中我有HREF此規定:

<a class="item item-icon-left" href="#/app/aquarium/index"> 
    <i class="icon"><img src="img/aquarium.png" /></i> 
    Aq 
    </a> 

但所有的時間,我看到文件從狀態「應用程序「(tpl/home.html)。

爲什麼我的鏈接不工作和爲什麼仍然加載文件TPL/home.html的時候就開始應用,可以使用「重定向」到

$urlRouterProvider.otherwise('/app/aquarium/index'); 

?謝謝:)

回答

1

首先,我建議你將它們作爲一個字符串數組傳遞給它們。如果沒有,那麼當你投入生產時,你將會遇到問題。

app.config([ 
    $stateProvider, 
    $urlRouterProvider, 
    $ionicConfigProvider, 
    function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { 
}]) 

圍繞國家的問題:

狀態直接取決於你之前已經配合建立了UI的意見,在這種情況下,我想你想設置他們在您的索引。 認爲ui-views是一個框,你可以使用html來調用它們,從狀態或url中調用它們,具體取決於你是由狀態還是由url組織你的應用。

使用狀態:

假設您的index.html,您需要創建用戶界面的視圖,以填補從美國的HTML。

<div ui-view="menuContent"> 

</div> 

如果您在聲明UI的觀點我不知道,我想是的。 在抽象狀態下,您應該使用視圖調用ui-view,並填充它以後不需要再次調用的內容,如果不是至少將其聲明爲空。

app.config([ 
    $stateProvider, 
    $urlRouterProvider, 
    $ionicConfigProvider, 
    function($stateProvider, $urlRouterProvider, $ionicConfigProvider) { 

// $ionicConfigProvider.views.transition('none'); 
$stateProvider 
      .state('app', { 
      url: '/app', 
      views: { 
      'menuContent': {} 
      }, 
      abstract: true 
      }) 
      .state('app.aquarium', { 
      url: '/aquarium/index', 
      views: { 
       'menuContent': { 
       templateUrl: 'tpl/aquarium/index.html', 
       controller: 'AquariumIndexCtrl', 
       } 
      } 
      }) 
.... 
    $urlRouterProvider.otherwise('/app/aquarium/index'); 

}]) 

想想UI視圖menuContent因爲這將dinamically具體取決於您呼叫的狀態填充一個盒子,只要你想,你可以有很多與UI的意見且僅當您設置加載它們一個接一個在視圖:{}狀態下。

最後你應該使用UI-S參考,而不是HREF致電diferent狀態:

<a class="item item-icon-left" ui-sref="app.aquarium"> 
    <i class="icon"><img src="img/aquarium.png" /></i> 
</a>