2017-10-13 49 views
0

我的应用程序中有一个问题。更新变量(Ionic 2)时不刷新页面

我在ts中有一个var数组,并且在html中我有一个用于绘制这个数组的列表。

当我自动添加文本的html刷新和多画一行,问题是当我使用getPicture(camara插件)来获取图库的图像并将其添加到数组,一切正常,但html不刷新,当我点击另一部分时自动刷新html。

如果我在添加文字时选择图片时会发生同样的情况,我认为getpicture会“阻止”应用程序的刷新。

任何人都知道强制刷新页面的方式,或者解决这个问题的方法吗?

THX

import { IonicPage, NavController, NavParams, AlertController, ModalController } from 'ionic-angular'; 
import { Component } from '@angular/core'; 

@IonicPage() 
@Component({ 
    selector: 'page-chat-chat', 
    templateUrl: 'chat.html', 
}) 
export class ChatPage { 

hilos: any; 

constructor(public navCtrl: NavController, public alertCtrl: AlertController, public navParams: NavParams, public http: HttpProvider, public global: GlobalProvider, public modalCtrl: ModalController) { 

} 

addFile(file) { 

    navigator["camera"].getPicture(

     function(uri){ 

      this.hilos.unshift({"ID":new Date().getTime(),"TYPE":"FILE","TEXT":uri,"SIZE":""}); 
     }, 
     function(message){ 

      //alert("alert",'Failed because: ' + message); 
     }, 
     { 
      quality: 50, 
      destinationType: Camera.DestinationType.FILE_URI, 
      sourceType: Camera.PictureSourceType.CAMERA, //Camera.PictureSourceType.SAVEDPHOTOALBUM 
      correctOrientation: true, 
      saveToPhotoAlbum: true, 
      targetWidth: 800, 
      targetHeight: 800 
     } 
    ); 

} 

<ion-list> 
    <ion-card *ngFor="let h of hilos"> 

     <ion-card-content> 

      <ion-list> 

       <ion-item class="body"> 
        <span *ngIf="h.TYPE == 'TEXT'" class="text">{{h.TEXT}}</span> 
        <span *ngIf="h.TYPE == 'IMAGE' && h.IMAGE == undefined" class="text"><img src='{{h.TEXT}}'></span> 
        <span *ngIf="h.TYPE == 'IMAGE' && h.IMAGE != undefined" class="text"><img src='{{h.IMAGE}}'></span> 

        <div class="file" *ngIf="h.TYPE == 'FILE'"> 
         <img src='../../assets/images/adjuntos/{{h.TEXT.split(".").pop()}}.png'> 
         <span class="texto">{{h.TEXTO.split("/").pop()}}</span> 
        </div> 
       </ion-item> 

      </ion-list> 

     </ion-card-content> 

    </ion-card> 
</ion-list> 

+0

的[2角变化检测和区在科尔多瓦不同应用(可能重复https://stackoverflow.com/questions/41903594/angular-2-change-detection-and-zone-are-different-in-cordova-app) – LuckyStarr

+0

我很确定我可以帮助你,但是我需要看看你迄今为止所做的事情,以便我可以帮助填补空白。 –

+0

@AnjilDhamala我编辑我的问题,并编写代码,问题是当使用getPicture(),如果我删除这部分它完美的作品。 – Chaeos

回答

0

请参考​​来看看如何使用该插件。我建议,在构造函数中注入插件和应用是:

this.cameraPlugin.getPicture() 

的Getpicture中()函数接受一个对象作为参数。因此,你会做,

let cameraOptions = { 
      quality: 50, 
      destinationType: Camera.DestinationType.FILE_URI, 
      sourceType: Camera.PictureSourceType.CAMERA, //Camera.PictureSourceType.SAVEDPHOTOALBUM 
      correctOrientation: true, 
      saveToPhotoAlbum: true, 
      targetWidth: 800, 
      targetHeight: 800 
     } 

然后

this.cameraPlugin.getPicture(cameraOptions) 
     .then((uri) => { 
      this.hilos.unshift({"ID":new Date().getTime(),"TYPE":"FILE","TEXT":uri,"SIZE":""}); 
     }, (message)=>{ 
      //alert("alert",'Failed because: ' + message); 
    });