angular 4中的模板绑定

angular 4中的模板绑定,angular,Angular,下面是我的部分组件代码 .... .... ngOnInit() { this.service.getData().subscribe( function(data) { try { console.log(JSON.stringify(data)); // {"name":"john"} this.ajaxdata = data; } catch(err) { console.log('Error Here....'); }

下面是我的部分组件代码

....

....
ngOnInit() 
{

this.service.getData().subscribe( function(data) {

    try 
    {
      console.log(JSON.stringify(data)); // {"name":"john"}
      this.ajaxdata = data;
}
catch(err) 
{
   console.log('Error Here....');
}

        });
}
....
....
下面是我的部分模板相关代码

{{ ajaxdata?.name }}  
上述代码中的console.log语句按预期打印“{”name:“john”}”。 但是{{ajaxdata?.name}}没有打印“john”,你知道原因是什么吗?

我想是的

{{ajaxdata.?name }}
我想是的

{{ajaxdata.?name }}

您已丢失
上下文

解决方案附于下文:

方式1:

this.service.getData().subscribe( function(data) {
    try {
        console.log(JSON.stringify(data)); // {"name":"john"}
        this.ajaxdata = data;
    }
    catch(err) {
        console.log('Error Here....');
    }

}.bind(this))
this.service.getData().subscribe( (data) => {
        try {
            console.log(JSON.stringify(data)); // {"name":"john"}
            this.ajaxdata = data;
        }
        catch(err) {
            console.log('Error Here....');
        }

    })
方式2:

this.service.getData().subscribe( function(data) {
    try {
        console.log(JSON.stringify(data)); // {"name":"john"}
        this.ajaxdata = data;
    }
    catch(err) {
        console.log('Error Here....');
    }

}.bind(this))
this.service.getData().subscribe( (data) => {
        try {
            console.log(JSON.stringify(data)); // {"name":"john"}
            this.ajaxdata = data;
        }
        catch(err) {
            console.log('Error Here....');
        }

    })

它应该可以解决您的问题。

您已经失去了
此上下文

解决方案附于下文:

方式1:

this.service.getData().subscribe( function(data) {
    try {
        console.log(JSON.stringify(data)); // {"name":"john"}
        this.ajaxdata = data;
    }
    catch(err) {
        console.log('Error Here....');
    }

}.bind(this))
this.service.getData().subscribe( (data) => {
        try {
            console.log(JSON.stringify(data)); // {"name":"john"}
            this.ajaxdata = data;
        }
        catch(err) {
            console.log('Error Here....');
        }

    })
方式2:

this.service.getData().subscribe( function(data) {
    try {
        console.log(JSON.stringify(data)); // {"name":"john"}
        this.ajaxdata = data;
    }
    catch(err) {
        console.log('Error Here....');
    }

}.bind(this))
this.service.getData().subscribe( (data) => {
        try {
            console.log(JSON.stringify(data)); // {"name":"john"}
            this.ajaxdata = data;
        }
        catch(err) {
            console.log('Error Here....');
        }

    })

它应该可以解决您的问题。

看起来您已经失去了此
的上下文

在代码中,
当前未指向
ajaxdata
的类实例。有几种方法可以解决这个问题。我认为最简单的方法是使用箭头函数,如下所示:

this.service.getData()
  .subscribe(data => this.ajaxdata = data)

有关这方面的详细信息,请参见

您似乎已经失去了此的上下文

在代码中,
当前未指向
ajaxdata
的类实例。有几种方法可以解决这个问题。我认为最简单的方法是使用箭头函数,如下所示:

this.service.getData()
  .subscribe(data => this.ajaxdata = data)

有关这方面的更多信息,请参见

为什么在
ajaxdata
之后会出现
?您能给出您的服务代码吗?@AgamBanga Ahhh!我不知道在angular2:)为什么在
ajaxdata
之后有
?你能给出你的服务代码吗?@AgamBanga Ahhh!我不知道在安圭拉2:)