在 $state.go 中将对象作为参数传递 [英] Pass object as parameter in $state.go

查看:35
本文介绍了在 $state.go 中将对象作为参数传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想导航到另一个状态/屏幕并将一个简单的 json 对象传递到下一个屏幕.

I want to navigate to another state/screen and pass a simple json object to this next screen.

我有以下几点:

var benefit = { "x": "y"};
$state.go('pages.claimed', { 'benefit': benefit });

我的状态如下:

.state('pages.claimed', {
  url: '/claimed',
  views: {
    'page': {
      templateUrl: 'templates/pages/claimed.html'
    }
  }
})

但是我无法访问福利";pages.claimed 视图中的对象/参数.我正在使用基于角度的离子框架.

I can't however access the "benefit" object/parameter in the pages.claimed view. I'm using the ionic framework based on angular.

推荐答案

Parse object to json:

var benefit = angular.toJson({ "x": "y"});

在状态参数中定义变量:

.state('pages.claimed', {
   url: '/claimed?params',
   views: {
     'page': {
       templateUrl: 'templates/pages/claimed.html'
     }
   }
})

通过$stateParams从控制器访问变量:

var benefit = angular.fromJson($stateParams.benefit);

此处完整文档

有几种方法可以将对象从 url 传递给控制器​​:

There are several ways to pass an object to controller from url:

通过查询参数:

定义选项 url: '/yoururl?a&b&c',

传递变量yoururl?a=1&b=2&c=3

通过网址参数:

定义选项 url: '/yoururl/:a/:b/:c',

传递变量yoururl/1/2/3

对于更复杂的情况,您可以将对象解析为 json 字符串并使用 base64 对其进行编码

对象:{ a:1, b:2, c:3 }JSON 字符串:{"a":1,"b":2,"c":3}Base64 编码字符串:eyJhIjoxLCJiIjoyLCJjIjozfQ==

Object: { a:1, b:2, c:3 } JSON String: {"a":1,"b":2,"c":3} Base64 Encoded string: eyJhIjoxLCJiIjoyLCJjIjozfQ==

定义选项 url: '/yoururl?params'

传递变量yoururl?params=eyJhIjoxLCJiIjoyLCJjIjozfQ==

更多关于 base64 的信息

More info about base64

这篇关于在 $state.go 中将对象作为参数传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆