[英]ng-init only if value is null/undefined
有没有一种使用ng-init
的方法,以便仅当ng-model
值为null或未定义时才运行它?
我有这个输入
<input ng-model="entry.Value.Currency" type="text" placeholder="Currency">
如果entry.Value.Currency == null
我希望将"Currency"
值设置为“ USD”。 请注意,它可能包含完全不同的值,例如'EUR'
在这种情况下,我希望代码不执行任何操作。
现在,我在该字段中键入的内容都会被删除,这是因为.Currency
不存在/是未定义的。 如果有助于输入的值,则始终保证entry.Value
存在/不为null。
尝试将ng-init="entry.Value.Currency ='USD'"
到输入字段,但这似乎什么也没做。
我想在不初始化javascript中的Currency
变量的情况下完成此操作,因为可以动态添加输入,并且它们添加到entry.Value
值可能有所不同。 我对每个输入控件唯一了解的是entry.Value = {};
最适合您的是使用ngModelController
的指令
我写了一个应该做你想要的东西,它的代码是
myApp.directive('currencyInit', function() {
return {
restrict: "A",
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
if (!ngModel) return;
ngModel.$render = function() {
if (ngModel.$modelValue == undefined || ngModel.$modelValue == null) {
ngModel.$setViewValue('USD');
}
element.val(ngModel.$viewValue);
}
}
}
});
并查看实际运行情况,可以查看此JSFiddle
PS对不起,我花了很长时间才写出来,所以我去吃了午饭😀
您可以使用ng-attr-placeholder="{{!entry.Value.currency?'USD':'something'}}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.