2013-07-03 4 views
0

Я пытаюсь создать простую форму, которая после нажатия клавиши «ввести» введенные данные будут отправлены и добавлены к списку в моем контроллере. Код у меня выглядит следующим образом:AngularJS ng: отправить на кнопку «ввести»

controller.js

.controller('GenericTodosCtrl', function($scope) { 

    $scope.todos=[]; 
    $scope.newTodo=""; 

    function addTodo() { 
     alert("hello"); 
     $scope.todos.push({ 
      content: $scope.newTodo, 
      done: false, 
      editing: false 
     }); 
     $scope.newTodo = ""; 
    }; 
}); 

main.html

<form ng:submit="addTodo()"> 
    <input name="newTodo" placeholder="Placeholder" type="text"> 
</form> 

В настоящее время, когда я набираю в значениях и нажмите 'Enter' ничего не происходит (даже не оповещения). Я не могу понять, должен ли я использовать «это» вместо $ scope для вещей в контроллере.js. Нужно ли ng: submit требовать что-то? Или это проблема с моим javascript?

ответ

4

Вы должны сделать addTodo часть вашего $scope.

$scope.addTodo = function() { 
    alert("hello"); 
    $scope.todos.push({ 
     content: $scope.newTodo, 
     done: false, 
     editing: false 
    }); 
    $scope.newTodo = ""; 
}; 

Кроме того, убедитесь, что значение в поле ввода фактически с привязкой к данным в вашей $scope значения с помощью ngModel:

<form ng:submit="addTodo()"> 
    <input ng:model="newTodo" placeholder="Placeholder" type="text"> 
</form> 
+0

, который идеально подходит. Просто начинайте с вещей, поэтому благодарим за ясный и сжатый ответ. –

+2

Добро пожаловать. Наслаждайтесь обучением AngularJS, это фантастический материал. –

Смежные вопросы