代码之家  ›  专栏  ›  技术社区  ›  popClingwrap

通过服务更新绑定组件值时出现意外结果

  •  1
  • popClingwrap  · 技术社区  · 7 年前

    我的问题是组件/服务交互。 I have made a plunker that demonstrates it 如果有人能解释问题所在,我会很高兴,因为我被难住了。

    <input type='text' [value]='labelStr'> 哪里 labelStr
    我还有一个声明 BehaviourSubject . 第一个组件订阅此主题。

    组件通过其订阅收到通知,并更新 标签TR 属性是由字符串预先挂起的接收值 .

    大多数情况下,它按预期工作-键入一些字符,单击out,值更新为 . 当您输入文本时,会出现问题,单击“退出”,然后单击“返回”,然后再次输入相同的文本。在这种情况下,价值似乎没有更新,就我的一生而言,我看不出为什么不更新。我真的希望这是一件让人难堪的显而易见的事情,我可以很容易地解决。
    如果我解释得不好,请大喊一声。

    谢谢你能提供的任何帮助。

    1 回复  |  直到 7 年前
        1
  •  0
  •   amal    7 年前

    如果您使用 ngModel 而不是 value

    首次导入 FormsModule app.ts

    import {FormsModule} from '@angular/forms'
    
    @NgModule({
      imports: [ BrowserModule, FormsModule ],
      declarations: [ App, InputWidgetComponent],
      bootstrap: [ App ],
    
    })
    export class AppModule {}
    

    在里面 input-widget.ts input

    <input type="text" [(ngModel)]="labelStr"
        (focus)="handleFocus($event)"
        (blur)="handleBlur($event)">
    

    希望有帮助