Я новичок в Anuglar JS Просто изучая основы, и я написал следующую программу:
<html>
<head>
<script src="js/angular.min.js"></script>
<script src="js/mycontroller.js"></script>
</head>
<body ng-app="myapp">
<div ng-controller="MyFirstController">
<input type="text" name="username" ng-model="username">
<input type="button" value="submit" ng-click="checkvalidate()">
Username entered is {{username}}
Result is {{checkvalidate()}}
</div>
и мой контроллер
var app=angular.module('myapp',[]);
app.controller('MyFirstController',function($scope)
{
$scope.checkvalidate=function()
{
// alert($scope.username);
console.log("called");
var user=$scope.username;
if(user.indexOf('@')!=-1)
return true;
else
return false;
};
});
Когда я ввожу текст в текстовое поле, метод checkvalidate() вызывается для каждого введенного символа. Почему это называется.
Пожалуйста, обновите вещь, которую мне не хватает, чтобы понять здесь. благодаря
Вы выводите:
Result is {{checkvalidate()}}
Когда просмотр обновляется, он запрашивает вашу функцию для данных. И View обновляется каждый раз, когда вы меняете свою модель имени пользователя. Назначьте свою валидацию переменной и выводите ее на просмотр. Что-то вроде:
$scope.isValid = false;
$scope.checkvalidate=function()
{
// alert($scope.username);
console.log("called");
var user=$scope.username;
if(user.indexOf('@')!=-1)
$scope.isValid = true;
else
$scope.isValid = false;
};
И чем в html:
Username entered is {{username}}
Result is {{isValid }}
Это связано с циклом углового дайджеста при печати метода в строке:
Result is {{checkvalidate()}}
Я бы рекомендовал в функции checkValidate установить переменную "isValid", чтобы отслеживать, действительно ли она или нет. Таким образом, вы можете распечатать его без этого.
Result is {{isValid}}
Угловая, как и множество других современных интерфейсных представлений, реализует привязку данных.
Это означает, что Angular позволяет писать представления в декларативном синтаксисе. Например:
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<input ng-model="username" type="text"/>
<p>The username is {{username}}
</div>
Это означает, что "пусть этот вход обрабатывает переменное username
". Это не обязательно означает, что угловой будет наблюдать событие onchange
, так как директива ng-model
может использоваться на связке различных типов входов, даже не стандартных HTML5.
Каждый раз, когда угловой перерисовывает представление, он запрашивает значение имени пользователя для области видимости и меняет вид.
Что-то подобное происходит, когда вы интерполируете вызов функции á, как checkvalidate
.