首頁 >web前端 >js教程 >如何在 ui-router 中使用 ui-sref 將參數傳遞給控制器?

如何在 ui-router 中使用 ui-sref 將參數傳遞給控制器?

Susan Sarandon
Susan Sarandon原創
2024-11-06 18:56:02648瀏覽

How can I Pass Parameters to Controllers Using ui-sref in ui-router?

在ui-router 中使用ui-sref 將參數傳遞給控制器

在ui-router 中,使用ui- sref 轉換到某個狀態允許將參數傳遞給控制器。澄清一下,您可以向目標狀態發送和接收兩個參數“foo”和“bar”。

狀態定義

更新狀態定義以接受URL 中的參數:

  $stateProvider
    .state('home', {
      url: '/:foo?bar',
      views: {
        '': {
          templateUrl: 'tpl.home.html',
          controller: 'MainRootCtrl'
        }
      }
    });

Controller消耗

在控制器內,從$stateParams檢索參數:

  .controller('MainRootCtrl', function($scope, $state, $stateParams) {
    //..
    var foo = $stateParams.foo; //getting fooVal
    var bar = $stateParams.bar; //getting barVal
    //..
  })

連結產生

要傳遞參數,請使用這個語法:

<a ui-sref="home({foo: 'fooVal', bar: 'barVal'})">

這將轉換到「home 」狀態指定的foo 和bar 參數,然後可以透過$stateParams 在控制器中存取這些參數。

自訂參數(可選)

狀態中帶有「params」屬性定義,您可以進一步設定參數行為:

  $stateProvider
    .state('other', {
      url: '/other/:foo?bar',
      params: {
        foo: {
          value: 'defaultValue',
          squash: false,
        },
        bar: {
          array: true,
        },
        hiddenParam: 'YES',
        // (not in URL)
      }
    });

參數設定include:

  • 值:預設值
  • 陣列:將參數值視為陣列
  • squash:控制URL中的預設值表示

參數注入

控制器參數注入是透過$stateParams。您可以使用以下方式檢索值:

var paramValue = $stateParams.paramName;

這就是 UI-router 如何使用 ui-sref 啟用狀態之間的參數傳遞,以便在控制器中輕鬆進行狀態轉換和參數可存取。

以上是如何在 ui-router 中使用 ui-sref 將參數傳遞給控制器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn