cordova ios 插件 回调函数 赋值 ionic2 双向

2017-06-02  本文已影响0人  神的旨意

cordova 开发的iOS插件,在回调函数中获取到值后,赋给变量,变量使用的是angularjs2, 进行的双向绑定,即变量值🈶️变化直接反应到页面上。但是我们OC回传给JS前端的值已经有了,前端也收到插件回传的值,就是在回调函数里面赋值的时候,不能双向绑定到页面,即页面的值没有及时更新,需要失去焦点才能更新值,于是查询资料需要

this.cd.markForCheck();//必须引入,标记检查

this.cd.detectChanges();//必须引入,找到修改值

加入上面两个方法,才可以,不过试过之后还是不行,最后把

<label class="choose-contact">{{this.mBankName}}</label>

这个标签换成<div>标签就可以了,完美解决。

解决之后和同事的代码整合后,同事src代码替换过来之后,居然不需要<label>标签换成<div>标签了。

引入上面两行代码就可以了。可以多多尝试一下。

1. ionic2 HTML标签

2. js 导入

import{ChangeDetectorRef}from'@angular/core';

constructor(public cd: ChangeDetectorRef)

3. js代码

//获取信用卡

getCreditBank() {

this.comData.getJson("/odsAuth/listAllCreditBankInfo/0", {},this.userId).then(data => {

if(data.code!="0"){

return;

}

varoptions1_selected= [0];

letdataSource=newArray();

data = data.data;

for(leti=0;i< data.length;i++){

dataSource[i] = {"text":data[i].pbnBankname.toString(),"id":data[i].bankPayCode.toString()};

}

navagator.YHPickerview.showPicker({

"pickerId":"picker1",

"title":"信用卡",

"depth":1,

"selected":options1_selected,

"options":dataSource

}, (results) => {

this.mBankName= results.selectedTextArray[0];

this.bankNO= results.selectedIDArray[0];

this.cd.markForCheck();//必须引入,标记检查

this.cd.detectChanges();//必须引入,找到修改值

}, (errMsg) => {

});

});

}

如果不行多试试几次,重新build, 也可以尝试把Label标签换乘DIV标签。如果不行,欢迎留言。

上一篇下一篇

猜你喜欢

热点阅读