Я новичок в Angular JS. При создании примера приложения я столкнулся с проблемой ниже, когда текстовое поле не устанавливается сразу после того, как значение в его очистке с помощью JavaScript.Below - это мой код:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
<script>
var app = angular.module("myApp", []);
app.controller("myCtrl", function () {
this.showName = function () {
this.user = { name: "John" };
}
this.clear = function () {
document.getElementById("name").value = "";
}
});
</script>
</head>
<body ng-app="myApp">
<div ng-controller="myCtrl as ctrl" class="container">
<input type="button" ng-click="ctrl.showName()" value="Show Name"/>
<input type="text" id="name" ng-model="ctrl.user.name" />
<input type="button" value="Clear" ng-click="ctrl.clear()" />
</div>
</body>
В первый раз, когда я нажимаю кнопку "Показать имя", я получаю имя в текстовом поле. Но если я очищаю текстовое поле, нажав кнопку "Очистить", а затем снова нажмите кнопку "Показать", имя не будет заполнено в тексте коробка. Может кто-нибудь, пожалуйста, скажите мне, почему это происходит, и так или иначе, чтобы это исправить?
Вот мой код в plunkr - http://plnkr.co/edit/MXlH2o?p=preview
В вашей четкой функции сделайте ниже код, чтобы очистить значение.
this.user = { name: "" };
изменить функцию clear на этот код
this.clear = function () {
this.user.name="";
}
вам не нужен метод clear() в контроллере, просто используйте двойную привязку в угловом, установите имя пользователя в пустую строку, когда вы нажмете на кнопку, и представление будет обновлено.
<input type="button" value="Clear" ng-click="ctrl.user.name = ''" />
Очистите имя, подобное этому,
this.clear = function () {
this.user.name = "";
}