typescript – Ionic 2:在与UI交互之前,数据模型中的更改未在UI中更新

问)为什么我的数据中的更改未在UI上显示,例如一个项目列表,但是一旦我与UI进行交互,它们就会神奇地出现?

例如,如果我得到一些绑定到列表的数据,然后像这样更新该列表:

this._LocalStorageService.getClients().then(
  (data) => {    
    this.clients = (data.res.rows.length == 1) ? <Client[]>JSON.parse(data.res.rows.item(0).clients) : [];
    this.showNoDataPresent = (this.clients.length == 0);  
  },
  (error) => {
    this._LogService.error(JSON.stringify(error.err));
  }
);

在我与应用互动之前,客户列表不会显示在用户界面中,例如单击菜单按钮,或聚焦搜索字段.

最佳答案 确保已升级到beta.6并遵循以下指南(因为除了更新package.json中的依赖项之外,几乎没有必要的更改)

>将Ionic CLI更新到最新版本:npm install -g ionic @ beta
>如果您使用Ionic 2.0.0-beta.3或更早版本升级项目,请先查看以下指南.
>从app.ts / app.js中删除行导入’es6-shim’.
>在index.html文件中的angular2-polyfill.js之前添加es6-shim.min.js:

  <script src="build/js/es6-shim.min.js"></script>
  <!-- Zone.js and Reflect-metadata  -->
  <script src="build/js/angular2-polyfills.js"></script>
  <!-- the bundle which is built from the app's source code -->
  <script src="build/js/app.bundle.js"></script>

>更新你的package.json(不要复制和粘贴使用这些作为参考并更新你文件中的那些):

“dependencies”:{“angular2”:“2.0.0-beta.15”,“es6-shim”:“^ 0.35.0”,
      “ionic-angular”:“2.0.0-beta.6”,
      “离子原生”:“^ 1.1.1”,
      “ionicons”:“3.0.0-alpha.3”,
      “reflect-metadata”:“0.1.2”,
      “rxjs”:“5.0.0-beta.2”,
      “zone.js”:“^ 0.6.11”
    }
>在package.json中,将ionic-gulp-scripts-copy的版本更新为^ 1.0.1.
>从项目文件夹的内部运行npm install以安装新软件包.
>查看changelog149以了解更改并相应地更新项目.

资料来源:https://forum.ionicframework.com/t/ionic-2-projects-updating-to-beta-6/50049

点赞