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

时间:2016-04-28 10:08:29

标签: typescript angular ionic2

问:为什么我的数据中的更改未在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));
  }
);

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

1 个答案:

答案 0 :(得分:2)

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

  1. 将Ionic CLI更新到最新版本:npm install -g ionic @ beta

  2. 如果您使用Ionic 2.0.0-beta.3或更早版本升级项目,请先查看以下指南。

  3. 删除行导入&#39; es6-shim&#39;来自app.ts / app.js。

  4. 在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>
    
  5. 更新你的package.json(不要复制和粘贴使用这些作为参考并更新你文件中的那些):

    &#34;依赖&#34;:{&#34; angular2&#34;:&#34; 2.0.0-beta.15&#34;,&#34; es6-shim&#34;:&# 34; ^ 0.35.0&#34 ;,       &#34; ionic-angular&#34;:&#34; 2.0.0-beta.6&#34;,       &#34;离子原生&#34;:&#34; ^ 1.1.1&#34;,       &#34; ionicons&#34;:&#34; 3.0.0-alpha.3&#34;,       &#34;反映元数据&#34;:&#34; 0.1.2&#34;,       &#34; rxjs&#34;:&#34; 5.0.0-beta.2&#34;,       &#34; zone.js&#34;:&#34; ^ 0.6.11&#34;     }

  6. 在package.json中,将ionic-gulp-scripts-copy的版本更新为^ 1.0.1。

  7. 从项目文件夹的内部运行npm install以安装新软件包。

  8. 查看changelog149以了解更改并相应更新项目。

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