【发布时间】:2017-07-12 18:50:02
【问题描述】:
angularjs 有一个名为 onchanges 的内置指令,它会监听 select 或其他任何内容的变化,并允许您在变化时执行函数。
我多么希望这是有角度的。目前我更好地理解 ngmodel 并了解如何使用主题来实现以下目标。
我有几个城市:
<div id="venueFilterParams" ngModelGroup="venueFilterParams">
<!-- need to add default values from url-->
<select [ngModel]="citySelect"
name="citySelect"
id="citySelect"
class="form-control">
<option *ngFor="let city of cities" value="{{city}}">{{city}}</option> <!--come back and wire up-->
</select>
和一些社区:
<select [ngModel]="neighborhoodSelected"
name="neighborhood"
id="neighborhood"
class="form-control">
<option *ngFor="let neighborhood of neighborhoodlist" value="{{neighborhood}}">{{neighborhood}}</option>
</select>
如果用户选择的城市不是在指向该页面的 URL 中传递的城市,(这将是默认选择的,我还没有建立它)
我需要我的应用访问我的数据库并使用该城市的社区重新填充社区选择选项。
所有这些我都可以做得很好,我想弄清楚的是代码会监听城市选择并运行执行上述操作的函数。
现在[ngModel] = citySelect; 不会自行更新,我必须等待提交单击才能捕获值,但是 [(ngModel)] = citySelect 并在主题中收听 citySelect 变量呢?
我会继续努力,但非常感谢您的建议!
【问题讨论】:
-
查看响应式表单,它们会为您提供一个包含特定组件或整个表单的所有事件的 RxJS 流。
-
谢谢@jonrsharpe 有没有办法在没有反应形式的情况下做到这一点?如果没有,我会继续的。
标签: javascript angular angular-ngmodel subject subject-observer