我有一个像这样的简单表格:
<form name="add-form" data-ng-submit="addToDo()">
<label for="todo-name">Add a new item:</label>
<input type="text" data-ng-model="toDoName" id="todo-name" name="todo-name" required>
<button type="submit">Add</button>
</form>
我的控制器如下:
$scope.addToDo = function() {
if ($scope.toDoName !== "") {
$scope.toDos.push(createToDo($scope.toDoName));
}
}
我想做的是在提交后清除文本输入,所以我只需清除模型值:
$scope.addToDo = function() {
if ($scope.toDoName !== "") {
$scope.toDos.push(createToDo($scope.toDoName));
$scope.toDoName = "";
}
}
除了现在,因为表单输入是“必需的”,所以表单输入周围有一个红色边框。这是正确的行为,但不是我在这种情况下想要的......所以我想清除输入然后模糊输入元素。这导致我:
$scope.addToDo = function() {
if ($scope.toDoName !== "") {
$scope.toDos.push(createToDo($scope.toDoName));
$scope.toDoName = "";
$window.document.getElementById('todo-name').blur();
}
}
现在,我知道像这样从控制器修改 DOM 在 Angular 文档中是不受欢迎的——但是有没有更 Angular 的方式来做到这一点?