ノード2で角度2で作業しているところがあります。以下は私のコードです。行(可変)をthis.rowsdata
(可変)に設定できませんでした。 私は、ノードJが非同期呼び出しを使用しているという理由があると思います。それがthis.rowsデータが行のために未定義になる理由です。ここUncaught TypeError:未定義の 'rowsdata'プロパティを設定できません
/// <reference path="../typings/node/node.d.ts" />
import { Component } from 'angular2/core';
import { OnInit } from 'angular2/core';
declare var module : any;
declare var jQuery : any;
var rowsdata : any[] = [];
// self = this;
interface ROWS {
name : string,
current_balance : number
}
@Component({
selector : 'portfolioList',
templateUrl : '../app/view/portfoliolist.html',
moduleId : module.id
})
export class PortfolioList implements OnInit {
// self : any = this;
constructor() {
// var self : this;
}
ngOnInit(): any {
this.showdata();
// console.log(this.rowsdata);
}
showdata() {
console.log("called");
var portfolioList = require('../app/api/showPortfolio.js');
portfolioList.showPortfolio(function(err:any, rows:any) {
console.log(rows);
// self.rowsdata = rows;
this.rowsdata = rows;
});
// console.log(self.rowsdata);
console.log(rowsdata);
}
}
showPortfolio機能は、あなたのコードで
exports.showPortfolio = function(callback) {
db.all(squel .select()
.from("portfolios")
.field("name")
.field("current_balance") .toString() , function(err, rows) { callback(null, rows) });
}
'console.log(this)' rowsdataを設定する前に。 'undefined'と表示されます。未定義オブジェクトのプロパティを設定することはできません。それはメッセージです – Apostolos
私は 'console.log(this)'をプログラムのどこにも書きませんでした。私は行のデータをオブジェクトの配列である行を設定したい。だから私はrows2ataを使用することができます* ngForのangular2 HTMLテンプレートです。あなたが理解したいと思っています。 –
私はあなたが知っていないことを知っている、私はちょうどエラーを見るためにそれを行うように言った。 basaratは問題を解決する答えを出しました。ファット・アローは、関数内で 'this 'を参照するための解決策です。 – Apostolos