【发布时间】:2018-06-27 10:44:16
【问题描述】:
我的应用中有两个component,即:HeaderComponent 和TestComponent。在HeaderComponent中,有一个方法名setUserData()。
我从文件test.component.ts 中的TestComponent 的方法ansSubmit() 调用这个setUserDate()。
现在setUserDate() 正在调用,值将传入setUserDate() 方法。
问题是:当setUserDate()调用时,我将分值设置为this.userData.score,以及this.userData.score 值在视图( HTML )中是绑定的,但来自的值
TestComponent 的方法 ansSubmit() 不会在视图上更新,但该值存在于 ts 文件中(我正在控制台中打印)。
代码如下:
test.component.ts:
import { HeaderComponent } from '../../components/header/header.component';
@Component({
selector: 'test-page',
templateUrl: './test.component.html',
styleUrls: ['./test.component.css'],
providers: [HeaderComponent]
})
export class TestComponent implements OnInit {
private userData: any = {};
constructor(private _router: Router, private headerComponent: HeaderComponent) { }
ansSubmit() {
const logged_in_user = new LocalStorage(environment.localStorageKeys.ADMIN);
this.userData = logged_in_user.value;
this.userData['score'] = parseInt(this.userData.score) + 54321
this.headerComponent.getUserData(this.userData['score']); // Calling HeaderComponent's method value is 54321.
}
}
test.component.html:
<div class="col-2">
<button (click)="ansSubmit()" >
<div>Submit Answer</div>
</button>
</div>
header.component.ts:
import {
Component, OnInit, ChangeDetectorRef, NgZone, ApplicationRef, ChangeDetectionStrategy
} from '@angular/core';
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.css'],
})
export class HeaderComponent implements OnInit {
public userData : any = {
score:2000,
};
getUserData(score) { // score= 54321 ( value is coming )
this.userData.score = score ;
console.log(this.userData.score); // in this.userData.score = 54321 ( Value is assigning )
}
}
}
header.component.html:
<span class="topbar-details">
Scrore : {{userData.score }} // actual problem is here, Its not updating value. Its only showing 2000.
</span>
请建议我如何解决此问题。提前致谢。
【问题讨论】:
-
不同的组件?
-
是的,我从不同的组件调用此方法。通过使用:this.headerComponent.getUserData(this.userData['score']);
-
你可以在stackblitz.com中添加一些代码并分享它
标签: angular model angularjs-scope angular2-template angular2-directives