AngularJS - сброс поля ввода формы из метода Factory

0

Можно ли сбросить форму при отправке с моей фабрики? Я в настоящее время перезагружаю его в ряд, но хочу сделать его более чистым. Если нет, что было бы лучшим способом сделать это?

var app = angular.module('app', []);

app.controller('ToDoController', function($scope, todos){
    $scope.todos = todos;
});

app.factory('todos', function(){
    var todos = {};

    todos.list = [];

    todos.addTodo = function(todo){
        todos.list.push({
            task:todo,
            completed: false
        });
    }    
    return todos;
})

app.directive('todo', function(){
    return {
        restrict: "E",
        templateUrl:'templates/todos.html',
        controller:'ToDoController'
    }
})

//шаблон

<form name="todoForm" novalidate class="text-center">
  <input type="text" ng-model="input">

<!-- it is being reset on the line below  after ngClick-->
            <button ng-click="todos.addTodo(input); input='';" class="btn" type="submit" ng-disabled="!input">Submit</button>
    </form
Теги:

1 ответ

0

Конечно:

app.controller('ToDoController', function($scope, todos){
    $scope.addTodo = function() {
        todos.addTodo($scope.input);
        $scope.input = '';
    };
});

и в перспективе:

<button ng-click="addTodo()" ...
  • 0
    Я мог бы сделать это, но я стараюсь, чтобы мой контроллер был максимально стройным.
  • 0
    Возможно, есть угловая директива, которую я мог бы использовать в разметке?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню