salary.service
とplayer.component
があります。給与変数がサービスで更新されると、プレーヤーコンポーネントのビューは更新されますか?それともAngular 2のケースではないのですか?アングル2サービス双方向データバインディング
ページが最初に読み込まれると、player.componentビューに50000が表示されるので、2人は一緒に作業しています。私が困惑している価値を更新しています。私は問題を解決する方法を確認したい人のため
salary.service
export class SalaryService {
public salary = 50000; // starting value which gets subtracted from
constructor() { }
public setSalary = (value) => { this.salary = this.salary - value };
}
player.component
export class PlayerComponent {
constructor(private salaryService:SalaryService) {}
public salary = this.salaryService.salary;
public updateSalary = (value) => { this.salaryService.setSalary(value) };
}
EDITは、ここPlunkerです:
http://plnkr.co/edit/aFRXHD3IAy0iFqHe5ard?p=preview
これは角度とはあまり関係ありません。それは単にJavaScriptです。オブジェクト内のフィールドを更新しても、別のオブジェクト内の同じ名前のフィールドは自動的には更新されません。また、クラスメソッドの構文を学び、より良い名前を選択することをお勧めします。例えば、setSalaryメソッドはsalatyを設定しません。これは、給与から所定の値を減算します。 –
私は違いを欲しがります。角度1では、ビューとモデルは「自動的に」更新されます...右ですか? – Mike
いいえ、まったくありません。 –