使用ionic2开发的一些问题及对策

来源:互联网 发布:zol软件论坛 编辑:程序博客网 时间:2024/05/16 17:32

这边记录一下ionic2开始遇到的一些问题

1.闭包函数及页面赋值的处理方法

ionic2推荐使用的是argularjs2中的promise,then的处理方法,最好的情况是把自己的异步方法全部写成这种形式,使用这种方法可以轻易的使用this.属性对页面的属性进行赋值,然后通过arjularjs的双向绑定在页面展示。然而不熟悉这种写法如果直接使用js异步方法或者函数中含有其它闭包函数调用会导致this.属性取不到页面的属性,对策是在主方法调用的时候写一句var that=this;到js的其它异步回调方法中使用that.属性进行操作。

2.页面刷新的处理

通过ionic2新建的页面文件,只含有ionDidView()方法,这其中的方法只在页面第一次加载的时候执行,如果页面使用push操作到子页面退回,那么母页面的这里面的方法就不会再执行。ionViewWillEnter()是每次到这个页面都会执行的方法,不论是push还是pop操作都会出发这个方法。ionViewDidLeave()是每次离开这个页面都会执行的方法。

3.使用ionic loading组件

一般需求是请求后台前调用loading方法,请求成功后dismiss loading,然而在加入dismissOnPageChange: true这个参数之后,若是执行页面的跳转操作(setRoot,push),会报Uncaught promise error,

需要将回掉方法现在loading的回掉函数中,或者是弹出一个alert窗口写在alert的回调函数中。

4.使不使用jquery

只要项目中引入jquery的ts声明的文件,index加入jquery的js文件就可以在项目中引用jquery,然而需要注意的是,如果使用jquery的选择器进行赋值等操作的时候,因为ionic2将每个push页面都放在了一个页面下,选择器也会把push之前的全部母页面选择到。

5.declarations.d.ts文件

在src文件夹下的declarations.d.ts文件,可以定义公共的声明,例如declare var BMap;,那么在index引用百度地图之后,就可以在每个页面直接使用BMap调用baidu地图的方法,同样自己写的一些js公共方法,可以在这个文件中声明。

其它的以后再写


0 0
原创粉丝点击