2017-10-13 50 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); 
    });