cordova ios 插件 回调函数 赋值 ionic2 双向绑定实效

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标签。如果不行,欢迎留言。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,569评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,921评论 0 33
  • /** *上传文件 * *@paramparamDic附加post参数 *@paramrequestURL请求地址...
    508e0be44880阅读 939评论 0 0
  • 1. 夜晚,床上玩耍 宁宝:麻麻,你的牛汁汁怎么那么大啰? 我:……,嗯,不这么大的话你和弟弟怎么会有牛汁汁恰类。...
    独处的旅途阅读 470评论 0 0
  • 白天我又次睡不着,我讨厌这种生活,真的讨厌这种生活,讨厌这种人生 今天接下来的事还有多,全是,我自己 我没有依附 ...
    AABM阅读 95评论 0 0

友情链接更多精彩内容