ionic开发中的各种坑
提前说明:这些坑是ionic1的。
一、关于缓存:<ion-view>中设置cache-view="false"表示禁用缓存,默认为true;
二、列表进入详情页面后返回,列表页面删选栏和滚动条和跳转前一样,但从home进入列表页面要刷新。思路是用$ionicHistory判断是进入or回退,要是进入就初始化,回退就保留缓存:
- 列表页面设置cache-view="true";
- home控制器中提供添加:$ionicHistory.clearHistory(),因为不管回退还是进入,$ionicHistory的backView都是home页面;
- 列表页面添加以下代码:
$scope.$on("$ionicView.beforeEnter", function() {
var clearHistoryForIndexPage = function() {
var history = $ionicHistory.forwardView();
if (!history) {
init();
}
};
clearHistoryForIndexPage();
});其中init()为初始方法。
三、滚动条:
- <ion-scroll>必须设置高度,且高度小于内容时才会滚动;
- 在浏览器下,滚动条滚动到底部还能再继续滚动,但真机上确是到底部无法滚动,不得不说这真是个坑,我研究了好久,结果在真机上却是正常的,所以有时候找不出原因,不妨真机调试看看,没准只是浏览器视图错误。
- 用指令动态设置<ion-scroll>的高度:
.directive('scrollHeight',function($window){
return{
restrict:'AE',
link:function(scope,element,attr){
element[0].style.height=($window.innerHeight)+'px';
//这里设置为屏幕高度
}
}
});
四、ion-infinite-scroll调用多次问题
解决方法:设置immediate-check="false"。
原因:若列表没有很快加载出来,浏览器以为已经到达底部,所以on-infinite方法会触发多次。immediate-check表示是否页面加载后立刻触发on-infinite方法,false表示只有滚动到页面边缘时才触发。
五、$ionicBackdrop 的retain()方法表示显示背景,使用时要注意防止调用三次,否则release()需要调用三次才能取消背景层。
六、<textarea>和padding对页面切换动画的影响:
<ion-view view-title="Facts" >
<ion-content >
<div class="padding">
<textarea placeholder="test" autofocus="autofocus" rows="6" ng-model="Input.test" ></textarea>
</div>
<div> test</div>
<p >
<a class="button icon ion-home" href="#/tab/home"> Home</a>
<a class="button icon icon-right ion-chevron-right" href="#/tab/facts2">More Facts</a>
</p>
</ion-content>
</ion-view>
在<ion-content>和<textarea>之间任何元素(包括<ion-content>和<textarea>)样式加上padding,都会导致本页面切换时出现卡顿、过头的问题。
ionic2中已经出现了新元素<ion-textarea>,可能解决了该问题
原因和解决方法还没有找到,此坑待填。
七、调起微信支付失败,返回-1。
微信支付开发文档显示-1报错原因为:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。
解决方法:将参数timestamp从字符串改成数字即可。
ionic开发中的各种坑的更多相关文章
- 关于ionic开发中遇到的坑与总结
这次是第二次使用ionic开发混合app,今天算是对这个框架做一个总结,基础的我就不再重复了,网上都有教程.我就说说自己的心得和遇见的各种坑, 之后会陆续补充,想到什么说什么吧. 1.关于ionic效 ...
- ionic开发中,输入法键盘弹出遮挡住div元素
采用ionic 开发中,遇到键盘弹出遮挡元素的问题. 以登陆页面为例,输入用户名和密码时,键盘遮挡了登陆按钮. 最终采用自定义指令解决了问题: .directive('popupKeyBoardSho ...
- 总结微信小程序开发中遇到的坑
总结微信小程序开发中遇到的坑,一些坑你得一个一个的跳啊,/(ㄒoㄒ)/~~ 1,页面跳转和参数传递实例 首先说一下我遇到的需求有一个我的消息页面,里面的数据都是后端返回的,返回的数据大致如下,有一个是 ...
- celery开发中踩的坑
celery开发中踩的坑 celery连接redis 当使用redis做broker,redis连接需要密码时: BROKER_URL='redis://:xxxxx@127.0.0.1:6379/0 ...
- 【EasyUI总结】EasyUI开发中遇到的坑
普遍: 1.easyui在书写键值对的时候要注意是否要加引号,在需要加引号的地方不加则无法渲染: datagrid数据网格: 1.datagrid默认请求方式是post,如果要使用分页功能pagina ...
- AngularJS移动开发中的各种坑
捂脸,辛酸泪ing...... 本文主要涉及部分在移动设备上特有的问题. 相对来说,Jquery侧重DOM操作,AngularJS是以视图模型和双向绑定为核心的. DOM操作的问题 避免使用 jQue ...
- Ionic开发中常见问题和解决方案记录
1npm按装包失败 更换源:npm config set registry https://registry.npm.taobao.org 或者使用cnpm sudo npm install -g c ...
- TFS扩展开发中遇到的坑
本码农最近开发一个VS扩展,其中有些功能涉及到文件的签出.我们公司用的是TFS,遇到了一些奇特的现象,将解决过程记录如下. 一.明明在线的连接却Offline属性等于True public stati ...
- 那些在django开发中遇到的坑
1. 关于csrf错误 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“one click attack”或者session riding,通常缩写为CSRF或 ...
随机推荐
- 关于APP程序员泡沫经济
这些年,移动互联网非常火,火到掀起学习iOS.安卓以及H5的热潮.有人将这些新技术作为自己的实力补充,增加竞争力:更多的人将它们作为主业,专职做移动开发.但是,即便有移动开发人员不断涌入,对整个行业来 ...
- Q
- final finally finalize
final //如果不是final 的话,我可以在checkInt方法内部把i的值改变(有意或无意的, //虽然不会改变实际调用处的值),特别是无意的,可能会引用一些难以发现的BUG ...
- 防止SQL注入的方法
方法1⃣️addslashes(); $username=addslashes($_POST['username']); 方法2⃣️mysql_escape_string(); 方法3⃣️开启魔术引号 ...
- JQuery_表单选择器
表单作为HTML 中一种特殊的元素,操作方法较为多样性和特殊性 开发者不但可以使用之前的常规选择器或过滤器,也可以使用jQuery 为表单专门提供的选择器和过滤器来准确的定位表单元素. 一.常规选择器 ...
- 冰球项目日志1-yjw
第一次小组讨论结果 功能需求分析 通过已知输入:球位置速度,击球手位置速度.确定输出:击球手击球时速度,击球点位置,击球手轨迹. 功能分解 1 通过当前的球位置速度,判断是否会进入我方球门,以判断是否 ...
- svn-多个项目版本库和自动同步更新post-commit
由于项目测试需求,需要远程服务器上使用svn做版本控制. 需求: 1,项目test1,项目test2,各自独立版本库,各自独立用户权限,便于项目管理 2,同步提交,本地svn提交至版本库后,服务器上的 ...
- eclipse: The superclass "javax.servlet.http.HttpServlet" was not found 解决方案
解决步骤: 1. 安装Tomcat8.5 Server 2. eclipse 新建Tomcat 8.5 Server 3. 配置build path 添加 Server Runtime 1.右键项目 ...
- Window通过cmd查看端口占用、相应进程、杀死进程
在windows下启动程序时候经常出现端口占用, 修改本程序端口是一种解决思路,但是更多时候希望直接杀掉占用端口的程序: 一. 查看所有进程占用的端口 在开始-运行-cmd,输入: netsta ...
- LoadRunner ERROR: java.lang.NumberFormatException
Loadrunner中使用lr_xml_get_values()获取服务端返回的字符串LcsId,LcsId为double,需要将该值转换为 int 后传入下一次请求中. 报错如下:Error is ...