Я хочу подтвердить свою форму с помощью ng-disable.
Поэтому моя функция проверяет правильность введенного вами идентификатора.
Также мне нужно будет проверить свою форму, если все входы будут заполнены.
Это моя функция:
vm.validateid = function(){
console.log('here');
var objvar = {
'id': vm.data.referalid,
'referral2': true,
};
$http.post(ConfigCnst.restUrl,objvar).then(function(res) {
if (res.data.status !== true) {
alert('Invalid ID');
vm.data.referalName = 'Invalid ID';
vlid = res.data.status;
console.log(vlid);
} else {
alert('ID Validated');
vm.data.referalName = JSON.stringify(res.data.data.name);
vlid = res.data.status;
console.log(vlid);
}
});
}
Я хочу принять vlid
. Он будет либо содержать true, либо false.
Это мой ng-disable:
<button ng-disabled="registerForm.$invalid"
ng-click="register.submit()"
class="button button-block button-positive">Confirm</button>
Я хочу проверить как registerForm
и vlid
как false.
Есть ли способ ссылаться на мой vlid
от моего контроллера?
Невозможность увидеть, где/как определяется ваш контроллер, делает это немного сложнее, но да, вы можете получить доступ к переменным области видимости с контроллера.
Итак, есть два возможных способа, которыми может быть определен ваш контроллер:
Использование контроллеров:
У вас будет myController as someName
в вашем html.
Затем вы можете передать someName.vlid
своей функции, а затем привязать это к res.data.status
Привязка к $ scope:
В вашем контроллере у вас будет параметр $scope
Затем вы можете использовать $scope.vlid
в своем контроллере или ng-model='vlid'
в своем html, передать это своей функции и обрабатывать ее таким же образом.
Если вы определили эту функцию в своем контроллере, вы можете использовать ng-model='vlid'
или ng-model='someName.vlid'
зависимости от того, как определяется ваш контроллер.
vm
как this
Установите переменную vlid
в переменную $scope
в вашем контроллере ($scope.vlid=vlid
). Затем вы можете получить доступ к нему в своем представлении html. Вам нужно обновить выражение ng-disabled
чтобы включить условие для vlid
.
<button ng-disabled="registerForm.$invalid && !vlid" ng-click="register.submit()" class="button button-block button-positive">Confirm </button>
вы можете ссылаться на vlid, используя $ scope.
vm.validateid = function() {
console.log('here');
var objvar = {
'id': vm.data.referalid,
'referral2': true,
};
$http.post(ConfigCnst.restUrl, objvar).then(function(res) {
if (res.data.status !== true) {
alert('Invalid ID');
vm.data.referalName = 'Invalid ID';
vlid = res.data.status;
$scope.vlid_status = res.data.staus;
console.log(vlid);
} else {
alert('ID Validated');
vm.data.referalName = JSON.stringify(res.data.data.name);
vlid = res.data.status;
$scope.vlid_status = res.data.staus;
console.log(vlid);
}
});
}
HTML
<button ng-disabled="registerForm.$invalid && vlid_status === false" ng-click="register.submit()" class="button button-block button-positive">Confirm </button>
all are filled up
... если использовать валидационные атрибуты / директивы, форма останется$invalid=true
до тех пор, пока требования не будут сопоставлены во всех полях и каждое поле не станет$valid=true
. Другими словами, вам не нужно проверять снова в клиенте .... но всегда повторная проверка на сервере