Я пытаюсь создать директиву, которая может использоваться для сравнения двух полей в нескольких проектах.Сравните два поля в директиве angularjs
разметка:
<div class="form-group">
<input ng-model="user.password" type="password" name="password" />
</div>
<div class="form-group">
<input ng-model="user.confpassword" ng-compare="password" name="confpassword" type="password" />
<p ng-show="registrationform.password.$error.ngcompare" class="help-block">Password's don't match</p>
Директива:
"use strict";
angular.module('app.directive.ngCompare', []).directive('ngCompare', function() {
return {
require: 'ngModel',
link: function (scope, element, attrs, ngModelController)
{
ngModelController.$parsers.unshift(function (viewvalue) {
console.log(scope); // doesnot contain password field object
console.log(viewvalue); // gives me value of confpassword field
console.log(scope[attrs.ngCompare]); // undefined
});
}
}});
Я не закончил писать свою директиву, но, в процессе разработки, когда я утешать сферы я не получаю значение первого пароля, но я получить значение confpassword.i, включая этот указательный параметр в моем основном приложении как «app.directive.ngCompare». Это связано с тем, что я не получаю значение пароля.
Я использую угловую версию 1.3.9. Я знаю, что существует много аналогичных директив, но мне нужно понять шаг за шагом, как они работают, поэтому начали создавать с нуля. Есть ли другой способ получить значение пароля с помощью методов angularjs, а не методов jquery.
спасибо. Именно то, что я искал. В большинстве случаев нет необходимости создавать изолированную область, особенно для ограничения, которое вы указали –