(AngularJS指令)改变输入模糊的模型值
(AngularJS Directive) Change model value on input blur
我有一个ng-model输入元素,我想输入整数,正数,但在空输入的情况下,将模型值设置为"1"。
我已经创建了一个指令,但在输入模糊后,它不会改变模型值为"1":
angular.module('myapp', [])
.controller('MainCtrl', function ($scope) {
$scope.item = { qty: 2 };
})
.directive('cartQty', function () {
return {
require: 'ngModel',
link: function (scope, elem) {
scope.$watch('item.qty', function (newValue, oldValue) {
var arr = String(newValue).split('');
if (arr.length == 0) return;
if (newValue == 0) scope.item.qty = 1;
if (isNaN(newValue)) scope.item.qty = oldValue;
});
elem.on('blur', function () {
var value = String(elem[0].value);
if (value.length == 0) scope.item.qty = 1;
});
}
};
});
下面是JSFiddle的实例:http://jsfiddle.net/buh86w8n/2/
有人能帮我吗?
elem.on('blur', function(){ // code..})
在外角范围
要更改elem.on blur
事件中的作用域值,必须调用$apply()
。
这里是工作活塞
elem。on blur event:
elem.on('blur', function () {
var value = String(elem[0].value);
if (value.length == 0){
scope.item.qty = 1;
scope.$apply();
}
});
或者您可以为该输入设置$watch
,如果它为空,则将其设置为1。
所以它从2开始,如果你删除它,它将被设置为1,否则设置为任何数字
这是你的代码编辑:
http://jsfiddle.net/buh86w8n/4/相关文章:
- 模糊事件的Javascript测试
- 在VanillaJS中模拟模型双向数据绑定
- 将事件聚焦/模糊在可编辑内容的元素上
- 为集合分配大量的模型弹药
- 如何使用backbone.js从集合中获取模型名称
- 骨干模型默认值-todos.js示例中不必要的代码
- EmberJS中支持单字母单词模型
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- 将不在模型中的数据返回到mvc控制器
- 如何在视图模型contet更新更新上调用Jquery函数
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 我应该如何检查主干.主干.模型更改时查看
- Ext.js从json构建模型关系的问题
- 显示模块模式在Knockout中设置模型的新实例
- 使用导航属性创建Kendo UI网格模型的问题
- Angular,函数在(模型)工厂中返回值
- 如何将本地json数据加载到Extjs数据模型中
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 更新成员数据模型中的记录列表
- (AngularJS指令)改变输入模糊的模型值