美文网首页
cordova ios 插件 回调函数 赋值 ionic2 双向

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

作者: 神的旨意 | 来源:发表于2017-06-02 20:31 被阅读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标签。如果不行,欢迎留言。

    相关文章

      网友评论

          本文标题:cordova ios 插件 回调函数 赋值 ionic2 双向

          本文链接:https://www.haomeiwen.com/subject/gvnufxtx.html