如何编写可接受未定义的ng-model setter方法?例如,当用户清空类型设置为date的输入时,angular将undefined
作为新值发送,这意味着angular.isDefined()
不再可用于确定该方法是否被称为getter或setter 。这是文档中给出的getter / setter方法的示例:
$scope.user = {
name: function (newName) {
if (angular.isDefined(newName)) {
_name = newName;
}
return _name;
}
};
答案 0 :(得分:3)
使用javascript的原生arguments
属性可以轻松解决此问题,我将建议对angular的文档进行编辑。这是一个例子:
$scope.user = {
name: function (newName) {
if (arguments.length > 0) {
_name = newName;
}
return _name;
}
};
答案 1 :(得分:1)
所有JavaScript函数调用中包含的内置对象arguments
只是参数的数组。 (w3schools)按名称将数组与零arguments > 0
进行比较,结果为false
。您需要与数组长度进行比较。
$scope.user = {
name: function (newName) {
if (arguments.length > 0) {
_name = newName;
}
return _name;
}
};