Это мой код контроллера. Показать всплывающее окно и при нажатии кнопки сделать некоторые проверки:
UZCampusWebMapApp.controller('PlanCtrl',function($scope, $ionicModal, $ionicLoading, $ionicPopup) {
$scope.confirmCreatePOI = function(data) {
var myPopup = $ionicPopup.show({
templateUrl: 'templates/pois/confirmCreatePOI.html',
title: 'Confirmar creación de POI',
scope: $scope,
buttons: [
{
text: '<b>Save</b>',
onTap: function() {
var invalidEmail = $scope.email.length==0 || $scope.email==null || typeof($scope.email)=='undefined';
if ($scope.emailChecked==true && invalidEmail) {
$ionicLoading.show({ template: 'Email is mandatory'});
}
else {
data.email = $scope.email;
$scope.finalSubmitCreatePOI(data);
}
}
},
{
text: 'Cancel'
}
]
});
};
});
Это код директивы, в котором вызывается предыдущая функция контроллера confirmCreatePOI
:
UZCampusWebMapApp.directive('formCreatePointOfInterest', function($ionicLoading) {
return {
restrict : 'A',
scope: true,
controller : function($scope) {
$scope.submit = function(data) {
console.log("Submit form createpoint of interest",data);
if($scope.createPOIform.$valid) {
$scope.confirmCreatePOI($scope.data);
} else {
$ionicLoading.show({ template: 'El formulario es inválido', duration: 1500})
}
}
}
}
});
А это мой код templateUrl:
<div id="confirm-create-poi-popup">
<p> Text </p>
<p> Text </p>
<div class="list">
<ion-checkbox ng-model="emailChecked">Receive notification</ion-checkbox>
<label class="item item-input">
<input type="email" ng-model="email">
</label>
</div>
</div>
Итак, после того, как пользователь нажал кнопку «Сохранить» (событие onTap), я хотел бы проверить, был ли введен адрес электронной почты в поле ввода.
Но когда я проверяю это с компробированием:
var invalidEmail = $scope.email.length==0 || $scope.email==null || typeof($scope.email)=='undefined';
Выражение $scope.email.length==0
возвращает ошибку, потому что адрес электронной почты не определен, поэтому свойство ng-model
не работает с $scope
, я не получаю никакого значения для $scope.email
Это почему? Свойство $ionicPopup $scope
не работает? Неправильно используется?