如何更改<选择>使用angularJS从控制器获得的值
How to change a <select> value from controller using angularJS?
我有一个选择元素,有1-10个选项,如:
<select id="selVal" ng-model="product.quantity" ng-options="o as o for o in quantityValues" ng-change="updateDelta(product.quantity, {{product.quantity}}, product.selected_size.qty_avail)"></select>
而在控制器端看起来像:
$scope.quantityValues = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
先决条件:初始产品数量<product.selected_size.qty_available
当我尝试选择其他选项时,我想做的是,如果与此新选项对应的值大于可用数量,则更新并显示上次选择的选项,即所选选项值小于可用数量的选项:
$scope.updateDelta = function(currentSelectedVal, prevSelectedVal, selectedProductAvailQty) {
if(product.quantity > selectedProductAvailQty) {
//than
#scope.product.quantity = prevSelectedVal;//still in product.quantity in view previous value is not displayed
}
}
示例:如果可用数量=4;以前选择的产品数量=2;当前选择的产品数量=8
我得到的当前o/p:仍然8显示在选择html标签中
预期:显示以前选择的产品数量,即显示2
记住控制器中的旧值(我将其放入乘积变量中)。
HTML:
<select ng-model="ctrl.product.quantity" ng-change="ctrl.updateDelta(ctrl.product.quantity)" ng-options="o as o for o in ctrl.quantityValues"></select>
控制器:
vm.product = {
quantity: 4,
qty_avail: 6,
prevSelected: this.quantity
};
vm.updateDelta = function(newVal) {
if (newVal > vm.product.qty_avail) {
vm.product.quantity = vm.product.prevSelected;
}
else
{
vm.product.prevSelected = newVal;
}
};
Plnkr 中的示例
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 如何更改<选择>使用angularJS从控制器获得的值
- 如何使用Ajax调用特定的控制器和操作来重定向用户
- Javascript/jQuery压缩一个图像正确的评论帖子,并使用Ajax Laravel 5.2保存到控制器中
- 当使用控制器作为语法时,如何从父指令继承属性
- 角度控制器未使用OcLazyLoad和ngRoute加载
- 尝试通过 Angular 控制器使用 Google Geocode API 进行地理编码,值未定义
- 将单选按钮值绑定到控制器(使用angularjs 1.5)
- 指令链接中的范围变量不会更新到指令控制器使用 Angular 读取它时
- 更新一个控制器中的模型,该模型被监视并位于不同的包中,并由另一个控制器使用
- Ruby on rails-如何让控制器使用ajax同时执行两个操作
- 因果报应茉莉花和角度控制器使用'控制器为'语法(this而不是$scope)
- 我可以使用Typescript类作为AngularJS控制器使用新的'controller as'语法
- Post到CI控制器使用JQueryAjax和Modal Bootstrap
- AngularJS控制器使用工厂函数
- 如何通过spring框架中的控制器使用querystring向jsp页面发送参数
- 如何为多个控制器使用引导模态
- 创建跨模型和控制器使用的指令
- 在AngularJS中对不同的控制器使用指令
- 作为angularjs中控制器使用的参考