0

我正在尝试创建一个简单的表单,在按下“输入”键后,输入的数据将被发送并附加到我的控制器中的列表中。我的代码如下:

控制器.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>

目前,当我输入值并点击“输入”时,什么也没有发生(甚至没有警报)。我似乎不知道是否应该在 controller.js 中使用“this”而不是 $scope。ng:submit 是否需要 ? 或者这是我的javascript的问题吗?

4

1 回答 1

4

你应该成为addTodo你的一部分$scope

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

此外,使用以下命令确保输入字段中的值实际上是数据绑定到您的$scopengModel

<form ng:submit="addTodo()">
    <input ng:model="newTodo" placeholder="Placeholder" type="text">
</form>
于 2013-07-03T20:22:13.733 回答