使用Angular,如何输出变量到HTML?
Using Angular, how can I output a variable to HTML?
使用 Angular,我试图将局部变量从构造函数传递到 HTML。
这是我的 TS:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
selector: 'page-random',
templateUrl: 'random.html'
})
export class RandomPage {
constructor(public navCtrl: NavController) {
var restaurants = [
'Restaurant1',
'Restaurant2',
'Restaurant3'
];
var restaurant = restaurants[Math.floor(Math.random()*restaurants.length)];
console.log(restaurant);
}
}
这是我的 HTML:
<ion-content padding>
<ion-item>
{{restaurant}}
</ion-item>
</ion-content>
restaurant
在构造函数触发时被记录。我只是不确定如何在 HTML 中显示它。我错过了什么?
您不能将 var
变量绑定到 html(因为它不是 属性!)。创建一个字符串变量并将其绑定到 html。 this
关键字用于访问组件内部的属性。
export class RandomPage {
restaurant: string;
constructor(public navCtrl: NavController) {
var restaurants = [
'Restaurant1',
'Restaurant2',
'Restaurant3'
];
this.restaurant = restaurants[Math.floor(Math.random()*restaurants.length)];
console.log(this.restaurant);
restaurant
在构造函数范围内定义,而不是作为实例变量。因此,Angular 无法访问该变量。您需要修改您的代码以匹配这种定义 public 实例变量 bar
的通用格式,然后在其 Foo
class 构造函数中为其分配一个值。
export class Foo() {
public bar: string;
constructor() {
this.bar = 'a string';
}
}
这是关于变量声明的TypeScript handbook section。可能值得一读。
使用 Angular,我试图将局部变量从构造函数传递到 HTML。
这是我的 TS:
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
selector: 'page-random',
templateUrl: 'random.html'
})
export class RandomPage {
constructor(public navCtrl: NavController) {
var restaurants = [
'Restaurant1',
'Restaurant2',
'Restaurant3'
];
var restaurant = restaurants[Math.floor(Math.random()*restaurants.length)];
console.log(restaurant);
}
}
这是我的 HTML:
<ion-content padding>
<ion-item>
{{restaurant}}
</ion-item>
</ion-content>
restaurant
在构造函数触发时被记录。我只是不确定如何在 HTML 中显示它。我错过了什么?
您不能将 var
变量绑定到 html(因为它不是 属性!)。创建一个字符串变量并将其绑定到 html。 this
关键字用于访问组件内部的属性。
export class RandomPage {
restaurant: string;
constructor(public navCtrl: NavController) {
var restaurants = [
'Restaurant1',
'Restaurant2',
'Restaurant3'
];
this.restaurant = restaurants[Math.floor(Math.random()*restaurants.length)];
console.log(this.restaurant);
restaurant
在构造函数范围内定义,而不是作为实例变量。因此,Angular 无法访问该变量。您需要修改您的代码以匹配这种定义 public 实例变量 bar
的通用格式,然后在其 Foo
class 构造函数中为其分配一个值。
export class Foo() {
public bar: string;
constructor() {
this.bar = 'a string';
}
}
这是关于变量声明的TypeScript handbook section。可能值得一读。