我有一个简单的形式,像这样:角 - 清除表单输入后提交
<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是于角文档中皱起了眉头 - 但有没有这样做的多棱角的方式?
谢谢!尽管我仍然需要清除模型,但$ setPristine()很好地处理了模糊。 'add-form'似乎可行,我可以用$ scope ['add-form']而不是点符号来访问它。 – leepowell
是的,清理模型总是必须的,因为$ setPristine不知道你的模型。谢谢你让我知道这个名字!错过了完全认为我不应该有的:) –
t = {};吨。foo-bar =“baz”; ReferenceError:分配中无效的左手边 –