Hello World 的例子

第 1 步:安裝

在使用 Angular-UI 路由器之前,必須在專案中包含 AngularJS。有關詳細指南,請參閱此文件

你可以分別從 GitHub-Page 或 NuGet,NPM,Bower 下載 Angular-UI 路由器。

在你的網頁中包含 JS 檔案後,你可以在應用程式中注入 ui.router 模組。在你的指令碼檔案中,你應該具有以下內容:

var app = angular.module('app', []);

現在我們將把 Angular-UI 路由器注入到我們自己的應用程式中,如下所示:

var app = angular.module('app', ['ui.router']);

現在 Angular-UI 路由器將載入我們的應用程式。以下步驟將解釋 Angular-UI 路由器背後的基礎知識,並將展示一些基本功能。

第 2 步:定義簡單狀態

你可以在 Angular config 函式中配置 UI-Router。使用 $stateProvider 定義你的狀態。在以下示例中,每個狀態都有一個 URL,控制器和一個模板。

(function() {
  var app = angular.module('app', ['ui.router']);
  
  app.config(['$stateProvider', function($stateProvider) {
      $stateProvider
        .state('home', {
          url: "/home",
          templateUrl: "home.html",
          controller: "homeCtrl"
        })
        .state('kitchen', {
          url: "/kitchen",
          templateUrl: "kitchen.html",
          controller: "kitchenCtrl"
        })
        .state('den', {
          url: "/denCtrl",
          templateUrl: "den.html",
          controller: "denCtrl"
        })
        .state('itemDetail', {
          url: "/items/:itemName",
          templateUrl: "item.html",
          controller: "itemDetailCtrl"
        })

    }])
})();

在 HTML 中,你將需要 ui-view 指令,以便可以在其中填充狀態檢視。

<div ui-view></div>

第 3 步:訪問狀態

共有 3 種方法可以訪問 $stateProvider 中定義的狀態。

1.通過 ui-sref 指令

你可以使用 ui-sref 指令訪問 HTML 中的狀態

<li ui-sref-active="active">
    <a ui-sref="kitchen">Go to the Kitchen</a>
</li>
<li ui-sref-active="active">
    <a ui-sref="den">Enter the den</a>
</li>
<li ui-sref-active="active">
    <a ui-sref="itemDetail({itemName:'keyboard'})">Key Board</a>
</li>

2.通過控制器中的 $state 服務

你還可以使用 .go 方法使用提供給控制器的 $state 導航到控制器內的其他狀態。

.controller(function($scope, $state) {
    // ...
    $scope.navigateTo = function(stateName) {
        $state.go(stateName); // i.e. $state.go('den'); 
    };
})

3.通過瀏覽器中的 URL

假設你有一個名為 kitchen 的狀態定義如下:

$stateProvider
  .state("kitchen", {
    url: "/kitchenUrl",
    ...
  });

然後訪問 appdomain / kitchenUrl 作為瀏覽器中的 URL 將進入你的 kitchen 狀態,假設沒有巢狀狀態,appdomain 是託管你的應用程式的伺服器。

如果你仍然感到困惑,這裡是一個完全工作的 Plnkr