AngularJS ui-sref的簡單使用

來源:互聯網
上載者:User
  具體用法:
    <a ui-sref="man">男人</a>

    這是一個非常簡單的ui-sref的使用,當JavaScript重建網頁時,它會尋找$state中名為“man”的state,讀取這個state的url,然後在a標籤裡產生href="url",

結果為:<a ui-sref="man" href="#/man.html">男人</a>     但如果,你在建立一個導航控制器,裡面有一個導航item的數組:

    $scope.items = [      {state: "man", statePage: "man.html"},      {state: "womanMe", statePage: "woman.html"}    ]


    然後在html中使用repeat:
    <li repeat="item in items">    <a ui-sref="{{item.statePage}}"><{{item.state}}</a>    </li>


    ui-sref不支援動態綁定,這樣的代碼會報錯。sref中你只能使用state名,頂多加點參數。
    這樣的話,你只能放棄sref,用回href綁定,你可以用$state.href來讀取state的url。
    

    下面簡單介紹下ui-sref參數的傳遞

頁面寫法如下

<a ui-sref="man({id:1,name:2})" >按鈕</a>

路由裡面配置:

$stateProvider.state('man', {    url: '/man.html?id&name',         //參數必須先在這邊聲明    templateUrl: '../man.html',})

點擊串連後,瀏覽器的地址則會變為:/man.html/id=1&name=2
或者也可以這樣

$stateProvider.state('man', {    url: '/man.html',             templateUrl: '../man.html',    params: {'id': null,'name':null},//參數在這邊聲明})

然後在對應的controller裡面通過$stateParams取值:$stateParams.id,$stateParams.name


其實ui-sref和$state.go本質上是一個東西,可以看看ui-sref源碼

element.bind("click", function(e) {    var button = e.which || e.button;    if ( !(button > 1 || e.ctrlKey || e.metaKey || e.shiftKey || element.attr('target')) ) {      var transition = $timeout(function() {        // HERE we call $state.go inside of ui-sref        $state.go(ref.state, params, options);      });





相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.