在Angular 2+中禁用双向数据绑定(5)

时间:2018-03-02 13:49:19

标签: javascript angular typescript two-way-binding

我有一个按国家/地区获取国家/地区的问题。 所以我有一个用户网格(表格),每个用户都有countyId(数字)和stateId(数字)。 在ngOnInit我得到了所有国家/地区。我在打开用户详细信息或编辑此详细信息时显示状态。现在我有针对这些事件的解决方法。但我尝试了更优雅的东西,我遇到了双向数据绑定的问题。这是一个例子。

<p *ngIf="countries.length"><strong class="mr-1">Country:</strong> {{countries | stateName:dataItem.mailingAddress.countryId}}</p>
<p><strong class="mr-1">State/Province:</strong> {{states(dataItem.mailingAddress.countryId, dataItem.mailingAddress.stateId)}}</p>

这个函数states每次调用,所以我骑自行车。在这个函数中,我想检查我是否有与该国家相关的状态,如果没有那么请求服务器。所以我只需要运行这个函数。

从服务器我获得一系列县

[
  { id: 1, name: "USA"},
  ...
]

并按国家ID说明。

我没有找到任何可以运行此功能的方法。或者也许有人知道更好的解决方法。

P.S。此管道stateName仅按countryId设置国家/地区名称。

如果有人帮助我,我真的很感激。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用管道作为国家/地区,并在加载用户时加载状态:

this.userService.getUser<User>()
.do{
    this.states(user.mailingAddress.countryId, user.mailingAddress.stateId);
}
.subscribe(users => this.users = users);