起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: ufo1982ufo

[结贴] 求指导,这个框架遇到了问题!

[复制链接]
发表于 2017-1-6 14:28:51 | 显示全部楼层
ufo1982ufo 发表于 2017-1-6 13:07
如何在infolist.w文件中判断是否有参数进来,我用上面的代码后可以进入,但是搜索的参数就传不进来了。
...

你直接判断  event.params.data.keyValue 是否为空就行
if(event.params.data.keyValue)
{
//获取参数执行
}else
{
//没有参数
}

自己debugger调试看下!
请描述清楚些??是什么代码?怎样传递参数没传进来?
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-6 14:43:18 | 显示全部楼层
liangyongfei 发表于 2017-1-6 14:28
你直接判断  event.params.data.keyValue 是否为空就行
if(event.params.data.keyValue)
{
  1.         Model.prototype.modelParamsReceive = function(event) {
  2.                 debugger;
  3.                 var self = this;
  4.                 if (event.params.data.keyValue){
  5.                         var key = event.params.data.keyValue;                //接收url参数
  6.                         alert('uk = '+key);
复制代码

系统进入首页时使用这个代码就提示“Uncaught TypeError: Cannot read property 'keyValue' of undefined”,只能判断有参数进来才执行,问题出在这里:if (event.params.data.keyValue),直接就卡住了!
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-6 15:03:34 | 显示全部楼层
liangyongfei 发表于 2017-1-6 14:28
你直接判断  event.params.data.keyValue 是否为空就行
if(event.params.data.keyValue)
{

if(event.params.data.keyValue),执行时就报keyvalue为undefined了,不执行后面的代码了!
回复 支持 反对

使用道具 举报

发表于 2017-1-6 15:31:31 | 显示全部楼层
ufo1982ufo 发表于 2017-1-6 15:03
if(event.params.data.keyValue),执行时就报keyvalue为undefined了,不执行后面的代码了! ...

就算keyValue 是 undefined

if(event.params.data.keyValue)  也不应该报错啊!
if(undefined)
也没有语法错误!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-6 16:33:32 | 显示全部楼层
liangyongfei 发表于 2017-1-6 15:31
就算keyValue 是 undefined

if(event.params.data.keyValue)  也不应该报错啊!

我在调试里进行了测试,一直都是undefined,就卡住。
不带参数进首页时,event是object,event.params是object,event.params.data是undefined
带参数进首页时,event是object,event.params是object,event.params.data是object
我就用了undefined进行了判断,貌似没有报错,content之间切换时也是没有报错,都是总感觉我的这个代码有些糟糕!


  1. ////////////////////////////////////////////////单页应用container接收参数并刷新数据
  2.         Model.prototype.modelParamsReceive = function(event) {
  3. //                debugger;
  4.                 var self = this;
  5. //                alert(event);
  6. //                alert(event.params);
  7. //                alert(event.params.data);
  8.                 if ( event.params.data !== undefined ){
  9.                         var key = event.params.data.keyValue;               
  10. //                        alert('#!传参keyValue = '+key);
  11.                         var data = self.comp('infoData');
  12.                         data.setFilter("filter","info_content like '%"+key+"%'");        //设置过滤条件
  13. //                        var f = data.getFilter("filter");
  14. //                        alert("filter = "+f);
  15.                         data.refreshData({"onSuccess":function(event){alert('refreshData ok');}});                //刷新数据
  16.                         this.comp("infoData").filters.clear();                                                //清除过滤条件
  17.                         event.params.data = undefined;                                                                //content切换不接参
  18.                 }else{}
  19.         };
  20. ////////////////////////////////////////////////单页应用container接收参数并刷新数据
复制代码
回复 支持 反对

使用道具 举报

发表于 2017-1-6 16:55:39 | 显示全部楼层
ufo1982ufo 发表于 2017-1-6 16:33
我在调试里进行了测试,一直都是undefined,就卡住。
不带参数进首页时,event是object,event.params是o ...

直接写if(event.params.data && event.params.data.keyValue)  就可以判断了!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-6 17:10:48 | 显示全部楼层
本帖最后由 ufo1982ufo 于 2017-1-6 17:12 编辑
liangyongfei 发表于 2017-1-6 16:55
直接写if(event.params.data && event.params.data.keyValue)  就可以判断了!

是的就是你的这个才没有问题,否则一切换就出问题了!

微信截图_20170106170618.png

用户发布后我想触发重新载入页面,用户切换content时,如果没有点击确认,草稿还在,这是正确的。如果点击了发布后却还是该页面,而且重复发就获取不到我全局的变量,需要重新刷新整个页面才可以继续发!!我应该 在哪里来处理刷新内嵌页面的事件,在content还是windowcontainer,还是在什么地方?


回复 支持 反对

使用道具 举报

发表于 2017-1-6 17:24:07 | 显示全部楼层
ufo1982ufo 发表于 2017-1-6 17:10
是的就是你的这个才没有问题,否则一切换就出问题了!

页面不需要刷新!
只需要让data组件刷新即可!或者清空data组件!
如果是windowContainer中的组件,还是需要调用windowContainer.load() 方法!
里面w可以判断,如果没有参数就清空数据!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

64

主题

321

帖子

679

积分

高级会员

Rank: 4

积分
679
QQ
 楼主| 发表于 2017-1-6 17:49:11 | 显示全部楼层
本帖最后由 ufo1982ufo 于 2017-1-6 17:53 编辑
liangyongfei 发表于 2017-1-6 16:55
直接写if(event.params.data && event.params.data.keyValue)  就可以判断了!

还是不行,如果点击多次conten来回切换后就卡死了,我已经关闭了contents的slidable属性了!,
如果一次都不点击那个接参的content的话,其余3个一直可以用!
报错还是data变为undefined,在网页,微信,apploader都一样! 微信截图_20170106174956.png 微信截图_20170106175219.png


回复 支持 反对

使用道具 举报

发表于 2017-1-9 09:28:25 | 显示全部楼层
ufo1982ufo 发表于 2017-1-6 17:49
还是不行,如果点击多次conten来回切换后就卡死了,我已经关闭了contents的slidable属性了!,
如果一次都 ...

按理说不应该这样的!
if条件中,&& 表示:短路且   有一个条件返回false ,后面的条件就不会判断才对的!

如果不行,你可以试着写两个判断条件
if(event.params.data){
if(event.params.data.keyValue){
//代码,这样还会报错吗?
}
}
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-4-17 01:50 , Processed in 0.074166 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表