首頁  >  問答  >  主體

angular.js - angularjs怎麼實現跳轉的,是要寫路由嗎

想要實現點擊連結會跳到詳情頁面,我是初學angular還請大神們解答。謝謝

黄舟黄舟2713 天前512

全部回覆(3)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:01:59

    方法1:使用angular 自帶的ngRoute
    依賴: angular-route.js (bower install angular-route)
    網址:http://docs.angularjs.cn/api/ngRoute/service/$route#example
    用法:
    a.需要ui 中用ng-view 指令指定如:

    這就相當於頁面的刷新區域
    b.配置註冊

    // 注入 ngRoute
    var angularApp = angular.module("Your App Name", ['ngRoute'])
    angularApp.config(function ($routeProvider) {
        $routeProvider.
        when('/list', {
            // 配置列表路由及 Controller
            templateUrl: 'partial/list.html', //TODO 列表页面
            controller: 'listController' //TODO 列表控制器
        }).
        when('/detail', {
            // 配置详情路由及 Controller
            templateUrl: 'partial/detail.html', //TODO 详情页面
            controller: 'detailController' //TODO 详情控制器
        }).
        otherwise({
            //默认路由
            redirectTo: '/list'
        });
    });

    方法2:使用第三方ui-router
    依賴:angular-ui-router.js (bower install angular-ui-router)
    網址:https://github.com/angular-ui/ui-router
    用法:
    a.需要ui 中用ui-view 指令指定如:

    這就相當於頁面的刷新區域
    b.配置註冊

    // 注入 ui.router
    var angularApp = angular.module("Your App Name", ['ui.router'])
    angularApp.config(function ($stateProvider) {
        $stateProvider.
        state('list',{
            url:'/list',
            templateUrl: 'list.html',
            controller: 'listController'
        }).
        state('detail',{
            url:'/detail',
            templateUrl: 'detail.html',
            controller: 'detailController'
        })
    });

    詳細的用法及不同可以自己參考一些文章,各有優缺點

    回覆
    0
  • ringa_lee

    ringa_lee2017-05-15 17:01:59

    單一頁面應用的話需要用到 $router 將 url 和 templatecontroller 對應起來。

    <a href='#/detail/{{phone.id}}'>{{phone.name}}</a>
    app.config(function($routeProvider) {
        $routeProvider
            // route for the home page
            .when('/home', {
                templateUrl : '/static/view/layout/home.html',
                controller  : 'HomeController'
            })
            .when('/detail/:id', {
                templateUrl : '/static/view/detail.html',
                controller  : 'DetailController'
            })
    })
    
    app.controller("DetailController", function($scope, $routerParams){
        console.log($routerParams.id);//
    })

    如果你不寫單頁應用,那就是正常的頁面位址。

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-15 17:01:59

    上邊已經說的很全了,通常做法都是用ui-router跳到你定義好的state,比如這個樣子.

    回覆
    0
  • 取消回覆