【问题标题】:ngModel doesn't work when loading the page加载页面时ngModel不起作用
【发布时间】:2017-03-07 17:36:46
【问题描述】:

我正在尝试根据加载本身的输入字段值显示特定的 div。我的角度服务在输入字段上设置的值。但是使用 [(ngModel)] 它不会在加载时绑定。有什么方法可以使用 angular 2 来实现。

<input id="showValue" value="1" [(ngModel)]="showValue">
{{showValue}}
<div class="form-group" *ngIf="show==1 || 'showValue'==1">
                <h5>BACKGROUND</h5>{{showValue}} 
</div>

【问题讨论】:

  • 你导入FormsModule了吗
  • 'showValue'==1" 应该做什么?那将永远是错误的。
  • showValue 将从我的服务中获得价值。它应该检查值并在加载时显示 div
  • 但是'showValue'==1 将字符串'showValue' 与整数1 进行比较。我想应该是showValue==1(不带引号)

标签: angular


【解决方案1】:

改为设置showValue的值

class MyComponent {
  showValue:string;
  constructor() {
    this.showValue = 1;
  }
}
<input id="showValue" [(ngModel)]="showValue">
{{showValue}}
<div class="form-group" *ngIf="show==1 || showValue==1">
                <h5>BACKGROUND</h5>{{showValue}} 
</div>

【讨论】:

  • 您好,感谢您的快速回复,这与我在服务中所做的相同,我放置的值元素用于显示示例
  • 对不起,我不明白评论。这是否意味着您不想这样做,或者您不能这样做?原因是什么? AFAIK value="1" 在您的示例中不会有任何影响,因为 ngModel 在初始化 ngModel 时会用 showValue 的值覆盖它。
  • 对不起,我的意思是说我做了同样的事情,但对我不起作用。我想我做错了什么
  • 谢谢。现在它的工作“this.showValue = localStorage.getItem("showValue");"当我加载页面时,它设置为 0。这是使用 localStorage 执行此操作的好方法吗?你能给我建议吗
  • 我看不出您的代码有什么问题,但如果没有更多上下文,我无法确定。如果它可以满足您的需求,那应该没问题。
【解决方案2】:

本地存储不是一个好方法,因此您应该使用用户服务然后在范围变量中设置值。

【讨论】:

  • 我可以使用this.showValue = connectService.showValue; 从服务获取价值到组件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 2016-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
相关资源
最近更新 更多