javascript - Angular 2 + Typescript显示函数内的变量

标签 javascript cordova typescript ionic-framework angular2-template

我是 typescript 和 Angular 2 的新手,我在尝试输出到 Cordova/Angular 应用程序中的页面时遇到了一些问题。

页面(book.html):

<ion-header>
  <ion-navbar>
    <button ion-button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>
    <ion-title>Book</ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <h3>Book</h3>

  <p>
    Book page.
  </p>
  <p>
    <span>{{ oBookingDebug }}</span>

  </p>

</ion-content>

代码(book.ts):

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { InAppBrowser } from '@ionic-native/in-app-browser';

@Component({
  selector: 'page-book',
  templateUrl: 'book.html'
})
export class BookPage {
    public oBookingDebug: string = "";

    constructor(public navCtrl: NavController, public iab: InAppBrowser) {

        this.oBookingDebug="TEST"; // <-- WORKS AND SHOWS ON THE PAGE!!

        const browser = this.iab.create('http://**');
        browser.on("loadstop")
        .subscribe(
        () => {
            browser.executeScript(
            {
                code:'localStorage.getItem("bookingObject");'
            }).then(
                (oBooking)=>{
                    alert(oBooking); // Test
                    this.oBookingDebug="DAVE"; // <-- DOESNT WORK!!
                });
        },
        err => {
            console.log("InAppBrowser Loadstop Event Error: " + err);
        });

    }
}

如果您查看我的评论,您可以看到哪些有效,哪些无效,我如何访问页面以从 executescript 回调中输出,id 喜欢此时能够显示到页面但也分配到一个变量以供以后访问。

最佳答案

似乎 Angular 变化检测让你的生活变得艰难,试试这个:

import { ChangeDetectorRef } from '@angular/core'

constructor(private cdr: ChangeDetectorRef) {}

在你的回调中:

(oBooking) => {
  this.oBookingDebug = 'DAVE';
  this.cdr.detectChanges();
});

这告诉 Angular 它应该检查是否有什么改变,以及是否有东西要在 DOM 树中渲染。 Here你可以找到文档。

关于javascript - Angular 2 + Typescript显示函数内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46043586/

相关文章:

angular - Ionic 4 - 键盘向上推内容

javascript - Angular 2为每个数组对象添加键和值

reactjs - 一些组件属性在react-dnd中删除后重置

javascript - 为什么我在网站特定页面 : Internal Server Error when browsing to index1. php 文件中出现错误?

javascript - 为什么我收到 ReferenceError : _variable is not defined?

javascript - 如何正确调用window.setInterval?

javascript - 触摸选择框时显示两次的选择选项

javascript - 防止 iOS 5.1 上打开键盘的默认操作

javascript - 覆盖 Jasmine 单元测试中的只读对象

javascript - 试图阻止 Javascript 在页面加载时运行