javascript - 插值在 angular2 中不起作用

标签 javascript angular rxjs

import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Observable';
import {Http} from 'angular2/http';
import {SpsheetService} from './spsheet.service';
import 'rxjs/Rx';


@Component({
 selector: 'my-spsheet',
 template: `
             <button id="fetch" (click)="reloadData()">Reload Data</button>
            <table class="table">
            <thead>
                <tr>
                    <th *ngFor="#head of heads">
                        {{head | async}}
                    </th>
                </tr>
            </thead>
            <tbody>
                <tr *ngFor="#dat of data">
                    <td *ngFor="#head of heads" contenteditable="true">
                        {{dat.head | async}}
                    </td>
                </tr>
            </tbody>
        </table>
        `,
providers: [SpsheetService]
 })

export class SpsheetComponent {
    data:any[];
    heads:string[];
    otherdata:string[];
    constructor(private _http:Http,private _spservice:SpsheetService){}

    reloadData(){
        this._spservice.fetchData()
            .subscribe(function(data) 
            {
                var me =this;
                me.data =[];
                me.data = data;
                me.heads = Object.keys(data[0]);
                var len = me.heads.length;
                console.log(me.heads);

            },
            err => console.log(err),
            () => console.log('Completed'));
    }


 }

我正在从 JSON 文件加载数据并将其构建到 HTML 表中。我能够获取数据并构建它,但问题是它不会反射(reflect)为 HTML 表格,即插值不起作用。尽管变量带有各自的值。

最佳答案

使用箭头函数来保持“this”的上下文完整。

reloadData() {
            this._spservice.fetchData()
                .subscribe((data) => {
                    this.data = [];
                    this.data = data;
                    this.heads = Object.keys(data[0]);
                    var len = this.heads.length;
                    console.log(this.heads);
                },
                err => console.log(err),
                () => console.log('Completed'));
        }

关于javascript - 插值在 angular2 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41737306/

相关文章:

javascript - A=0, B=1, C=2, ... , Z=25, AA=26, AB=27..等等 如何做到这一点?

Jquery 和 Bootstrap 4 - 用于调整大小和滚动顶部的导航栏转换

javascript - Ngfor 没有在重新加载页面上实现(Angular + RXJS)

Javascript 隐藏显示 getElementById 与 getElementsByClassName

Javascript 图像编辑器库

javascript - 程序生成

具有 (CSP) 内容安全策略的 Angular 5 和 ASP.Net Core

angular - 带有 Angular 4 的 .NET CORE API - 交换了 cookie token 和请求 token

javascript - Angular 6 : Property 'fromEvent' does not exist on type 'typeof Observable'

javascript - 可观察到的 : flatMap randomly not triggered