您好。这是我的代码。我需要获取输入文本的值,但是当输入文本的值被更改时,我只能获取值。如何在不需要更改的情况下获取输入文本的值(最初得到输入文本的值)
我想做一些非常通用的东西,我可以在任何控制器中重复使用它。有一定数量的字段并验证它们,所以我不想总是得到变量“number”的值。
我想在任何控制器上重用此指令。我不会总是有$ scope.numero变量。如何在不在指令中键入scope.numero的情况下获取文本字段的值?
var app = angular.module('app', []);
app.controller('appCtrl', function ($scope) {
$scope.numero=100500
});
app.directive('validate', function () {
return {
restrict: 'AE',
require: 'ngModel',
link: function (scope, element, attrs, ngModel) {
if (!ngModel){
return;
}
ngModel.$parsers.push(function(val){
if ((val>10) && (val<20)){
element.removeClass("wrong");
element.addClass("correct");
} else {
element.removeClass("correct");
element.addClass("wrong");
}
ngModel.$render();
})
}
};
});
答案 0 :(得分:2)
您需要的数据已经在ngModel
内,因此您可以使用ngModel.$modelValue
检索它。
(一般来说,当使用Angular时,最好不要习惯从DOM中读取数据 - DOM是范围数据的副作用表示;不需要指令&#34;从输入字段读取数据&#34;因为输入字段首先使用指令中已有的数据填充!)