zoukankan      html  css  js  c++  java
  • angular ui 路由传参

    1、 ui-sref、$state.go 的区别

    ui-sref 一般使用在 <a>...</a>;

    $state.go('someState')一般使用在 controller里面;

    这两个本质上是一样的东西,我们看ui-sref的源码:ui-sref最后调用的还是$state.go()方法

    2、传递参数

    2.1 ui-sref

     .state('home.questionTodo',{
       url:'/questionTodo',
       views:{
         'right-content@home':{
           templateUrl:'home/questionTodo/questionTodo.view.html',
           controller:'questionTodoCtrl'
         }
       },
     })

    .state('home.questionTodo.questionDetail',{
        url:'/questionTodo/questionDetail/:questionId',
        views:{
            'right-content@home':{
              templateUrl:'home/questionTodo/questionDetail/questionDetail.view.html',
              controller:'questionDetailCtrl'
            }
        }, 
     })

    这个是home页下有一个questionTodo页面,该页面有很多question,点击详情,跳转到该问题的详情页,显示该问题,需要在url上传递questionId.

    <a ui-sref="home.questionTodo.questionDetail({questionId:question.questionId})">详情</a>

    2.2 $state.go

    <a ng-click="goDetail(question.questionId)">详情</a>

    在questionTodoCtrl中

    $scope.goDetail=function(questionId){
      $state.go('home.questionTodo.questionDetail',{questionId:questionId});  
    }

    3、 接收参数

    在questionDetailCtrl中

    .controller('questionDetailCtrl',['$stateParams',function($stateParams){
        console.log($stateParams.questionId);
    }])

    4、传递参数为对象

    上面传递的参数是普通的值,会表现在url中,questionTodo/questionDetail/12(12即questionId)

    使用params传递参数时,可以传递任意类型值得参数,并且不会表现在url中,但是刷新该页面时,参数会丢失

    .state('home.questionTodo.questionDetail',{
        url:'/questionTodo/questionDetail',
    params:{question:null}, // 定义一个空对象,接收数据,同样也可以传递普通参数,但都不会在url上显示 views:{
    'right-content@home':{   templateUrl:'home/questionTodo/questionDetail/questionDetail.view.html',   controller:'questionDetailCtrl' } }, })
    <a ui-sref="home.questionTodo.questionDetail({question:question})">详情</a>
    <a ng-click="goDetail(question)">详情</a>
    $scope.goDetail=function(question){
      $state.go('home.questionTodo.questionDetail',{question:question});  
    }
  • 相关阅读:
    学习Extjs4 (21) 简单窗口
    C#启动外部程序的几种方法以及等待外部程序关闭的方法
    linux驱动学习(3)同步、信号量和自旋锁
    andoird webiew使用有道辞典实例
    Linux程序设计——用getopt处理命令行参数(转)
    git,github在windows上的搭建
    sparc芯片验证
    睡了一下午
    UNIX/Linux里统计文件里某个字符出现的次数(转)
    linux和单片机的串口通信
  • 原文地址:https://www.cnblogs.com/YangqinCao/p/5777254.html
Copyright © 2011-2022 走看看