有没有办法使用ng-model
,只有在<input ng-model="entry.Value.Currency" type="text" placeholder="Currency">
中的值为null或未定义时才会运行?
我有这个输入
"Currency"
如果entry.Value.Currency == null
,我希望将'EUR'
值设置为“USD”。请注意,它可能包含完全不同的值,如.Currency
,在这种情况下,我希望代码不执行任何操作。
现在我在字段中输入的内容只是被删除了,我认为这是因为entry.Value
不存在/未定义。如果有帮助,ng-init="entry.Value.Currency ='USD'"
的值始终保证存在/不为空。
尝试将Currency
添加到输入字段,但似乎根本没有做任何事情。
我想在不初始化javascript中的entry.Value
变量的情况下完成此操作,因为可以动态添加输入,并且它们添加到entry.Value = {};
的值可能会有所不同。我知道每个输入控件的唯一内容是{{1}}
答案 0 :(得分:1)
最适合您的是使用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
P.S。对不起,我花了很长时间才写下来,我出去吃午饭
答案 1 :(得分:0)
您可以使用ng-attr-placeholder="{{!entry.Value.currency?'USD':'something'}}"