Angular 6 ngModel不会更改appcomponent中的值

时间:2019-04-20 21:42:09

标签: angular

我现在正在练习角度和打字稿,并遇到一些简单的问题。

这是我的 component.html

SELECT t.entityId,
       (SELECT  SUM(CASE WHEN t2.currency <> 'GBP' THEN t2.amount/er.exchange_rate ELSE t.amount END)j
SUM(t2.gbp) AS amount
        FROM transactionsV2 t2 JOIN
             total_control.exchange_rates er 
             ON t.currency = er.currency
        WHERE t2.uniqueid = t.uniqueid
FROM transactionsV2 t
WHERE t.paymentType IN ('DB', '3D') AND
      t.processing_time >= '2019-04-01' AND
      t.processing_time < '2019-04-21' AND
      t.status = 1;

和我的 component.ts

<div>
    <input [(ngModel)]="mynumber">
    N is now {{N}}
    // some content I want to do with functions with changing mynumber
</div>

问题是,“ N现在是#”应该实时更改我键入的内容。但是更改似乎从未传递给AppComponent。 N最初保留为1。键入时,如何更改import { Component } from '@angular/core'; @Component({ selector: 'app-root', templateUrl: './app.component.html' }) export class AppComponent { mynumber = '1'; N = this.mynumber; // some function with mynumber } 的值,更改也会影响函数?

2 个答案:

答案 0 :(得分:1)

行执行期间

N = this.mynumber;

N分配了this.mynumber current 值,即1。更改mynumber时,该值不会自动更新。您可以a)放弃冗余属性N并仅使用mynumber,或b)每次更新N时更新mynumber

答案 1 :(得分:1)

N的值初始化为mynumber时,它只会发生一次,并且不会反映出对mynumber值的新更改。

要使其工作,您可以将事件绑定到ngModelChange并分解[[x)]语法并触发组件中的方法,该方法将在更改N时更新值mynumber

<input [ngModel]="mynumber" (ngModelChange)="valuechange($event)">
  N is now {{N}}

并且在组件中,在触发方法时更新N

 valuechange(value){
    this.N = value;
 }

尽管这种方法是多余的,并且您可以在模板表达式中简单地使用mynumber