找回密码
 立即注册
搜索

开发问题 如何取全局数据?

3
回复
2238
查看
[复制链接]

2

主题

2

帖子

20

积分

 楼主| 2018-7-30 18:45:52 显示全部楼层 |阅读模式
本帖最后由 kuaiapp2018 于 2018-7-30 19:18 编辑 需求: 在APP初始化时就生成指定的URL,然后打开页面的时候直接以webview方式访问URL 在app.ux里的已经定义了数据,但是在其它页面怎么获取不到定义的数据? 代码: index.ux import router from '@system.router'; import webview from '@system.webview'; import device from '@system.device'; import prompt from '@system.prompt'; export default { public:{ isRefresh:false, web_url:'https://xxx.com/index.php' }, onReady(){ let temp_url = this.web_url; device.getId({ type: ['user'], success: function (data) { console.log(`handling success: ${data.user}`); if (data.user) { temp_url += '?token=kuai_app_' + data.user; } }, fail: function (data, code) { console.log(`handling fail, code = ${code}`) } }); this.web_url = temp_url; console.log(this.web_url); }, 结果跳转的 还是 https://xxx.com/index.php 这个URL,而不是我想要的 https://xxx.com/index.php?token=kuai_app_aaaaaa 请问这个应该如何实现?
回复

使用道具 举报

6

主题

27

帖子

165

积分

2018-7-31 09:18:37 显示全部楼层
快应用提供的接口基本上都是异步的,所以,当你getId success的时候,接口外部的程序this.web_url = temp_url已经执行了,也就是说,public中url的值并没有被改变
回复

使用道具 举报

6

主题

27

帖子

165

积分

2018-7-31 09:24:33 显示全部楼层
Ender 发表于 2018-7-31 09:18 快应用提供的接口基本上都是异步的,所以,当你getId success的时候,接口外部的程序this.web_url = temp_u ...
在接口调用前备份一下this,success时,直接修改public中的web_url就可以
回复

使用道具 举报

0

主题

1

帖子

5

积分

2018-7-31 10:12:40 显示全部楼层
本帖最后由 falost 于 2018-7-31 10:14 编辑 楼上正解,你可以试试这样写
  1. import router from '@system.router';
  2. import webview from '@system.webview';
  3. import device from '@system.device';
  4. import prompt from '@system.prompt';
  5. export default {
  6. public:{
  7. isRefresh:false,
  8. web_url:'https://xxx.com/index.php'
  9. },
  10. onReady(){
  11. let temp_url = this.web_url;
  12. let that = this;
  13. device.getId({
  14. type: ['user'],
  15. success: function (data) {
  16. console.log(`handling success: ${data.user}`);
  17. if (data.user) {
  18. temp_url += '?token=kuai_app_' + data.user;
  19. }
  20. that.web_url = temp_url;
  21. console.log(that.web_url);
  22. },
  23. fail: function (data, code) {
  24. console.log(`handling fail, code = ${code}`)
  25. }
  26. });
  27. },
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册