Tôi có một hình thức đơn giản như vậy:góc - rõ ràng hình thức đầu vào sau khi nộp
<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>
với bộ điều khiển của tôi như sau:
$scope.addToDo = function() {
if ($scope.toDoName !== "") {
$scope.toDos.push(createToDo($scope.toDoName));
}
}
những gì tôi muốn làm là rõ ràng đầu vào văn bản sau khi gửi, vì vậy tôi chỉ cần xóa giá trị mô hình:
$scope.addToDo = function() {
if ($scope.toDoName !== "") {
$scope.toDos.push(createToDo($scope.toDoName));
$scope.toDoName = "";
}
}
Ngoại trừ bây giờ, vì đầu vào biểu mẫu là 'bắt buộc' Tôi có viền đỏ xung quanh t anh ta tạo thành đầu vào. Đây là hành vi đúng, nhưng không phải những gì tôi muốn trong kịch bản này ... vì vậy thay vào đó tôi muốn xóa đầu vào và sau đó làm mờ phần tử đầu vào. Dẫn tôi đến:
$scope.addToDo = function() {
if ($scope.toDoName !== "") {
$scope.toDos.push(createToDo($scope.toDoName));
$scope.toDoName = "";
$window.document.getElementById('todo-name').blur();
}
}
Bây giờ, tôi biết rằng sửa đổi DOM từ bộ điều khiển như thế này không được tán thành trong tài liệu góc - nhưng là có một cách góc cạnh hơn để làm điều này?
Cảm ơn bạn! Mặc dù tôi vẫn phải xóa mô hình $ setPristine() xử lý mờ một cách độc đáo. 'add-form' có vẻ hoạt động, và tôi có thể truy cập nó với $ scope ['add-form'] thay vì dấu chấm. – leepowell
Vâng, việc xóa mô hình luôn là điều bắt buộc, vì $ setPristine không biết về mô hình của bạn. Cảm ơn vì đã cho tôi biết về tên! bỏ lỡ điều đó hoàn toàn nghĩ rằng tôi không nên có :) –
t = {}; t.foo-bar = "baz"; Tham chiếuMỗi: Phía bên tay trái không hợp lệ trong bài tập –