AngularJS在更改模型时引发更改
AngularJS fire ng-change when changing a model
我有一个看起来像这样的表单:
<div class="col-xs-12 col-lg-4">
<form name="deliveryForm" ng-class="{ 'has-error': deliveryForm.$invalid && !deliveryForm.contact.$pristine }">
<div class="form-group">
<div class="btn-group">
<label class="btn btn-default" ng-model="controller.order.lines[0].forDelivery" btn-radio="true" ng-change="controller.setDeliveryDetails()">For delivery</label>
<label class="btn btn-default" ng-model="controller.order.lines[0].forDelivery" btn-radio="false" ng-change="controller.findCollectionPoints()">For collection</label>
</div>
</div>
<div class="form-group" ng-if="!controller.order.lines[0].forDelivery">
<label class="control-label">Contact</label>
<input class="form-control" type="text" name="contact" ng-model="controller.model.contact" ng-change="controller.setDeliveryDetails()" autocomplete="off" required />
<input type="hidden" name="collectionPoint" ng-model="controller.model.collectionPoint" ng-change="controller.setDeliveryDetails()" required />
</div>
<div class="form-group">
<label class="control-label">Instructions</label>
<input class="form-control" type="text" name="instructions" ng-model="controller.model.instructions" ng-change="controller.setDeliveryDetails()" autocomplete="off" />
</div>
<div class="form-group">
<button class="btn btn-default" type="button" ui-sref="saveOrder.lines">Back</button>
<a class="btn btn-primary pull-right" ng-if="deliveryForm.$valid" ui-sref="saveOrder.confirm">Continue</a>
</div>
</form>
</div>
正如您所看到的,如果我的第一行是而不是用于交付,那么我将显示联系人输入和隐藏的collectionPoint输入。再往下一点,我有一个链接,可以更改集合点:
<a href="#" ng-click="controller.model.collectionPoint = point"></a>
我希望隐藏的输入能检测到更改并启动控制器.setDeliveryDetails()方法,但它似乎不起作用。有什么办法我能做到这一点吗?
ng更改是在对输入而非模型进行更改时触发的。
您可以在ng-click
:上运行controller.setDeliveryDetails()
<a href="#" ng-click="controller.model.collectionPoint = point; controller.setDeliveryDetails()"></a>
或者在controller.model.collectionPoint 上的控制器中设置手表
$scope.$watch(angular.bind(this, function () {
return this.model.collectionPoint;
}), function (newVal) {
controller.setDeliveryDetails();
});
相关文章:
- 如何将ng选项的索引作为angularJs中的值传递给模型
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- AngularJS-使模型变量可用于jQuery
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- 自定义指令中的AngularJS ng模型
- 模型更改时的AngularJS动画
- AngularJS在更改模型时引发更改
- Angularjs:如何让ui选择只有一种方式的模型竞标
- AngularJS模型在手动更改选项后不会更新
- AngularJS+IE 11+聚合物=ng模型未更新
- 如何在angularjs中点击按钮重置模型
- AngularJS ng下拉树结构的模型定义
- 延迟 AngularJS 路由更改,直到加载模型以防止闪烁
- 需要使用触摸屏从 AngularJS 指令中更新模型
- AngularJs 切换模板 URL 并访问模型数据
- 如何将子值绑定到模型 angularjs
- 父/子模型AngularJS上的默认ngOptions
- 如何向控制器发送数据,比如Model有列表模型AngularJs
- 更新模型angularJS
- 为这个JSON输入数组定义ng模型——AngularJS