我有一个 angularjs 中的示例待办事项应用程序。我的待办事项列表是一个数组。但每次只有数组项的最后一个值被添加到 li 中。
我已在 jsbin 上复制了该问题。
http://jsbin.com/simafuzidi/3/edit
我希望待办事项列表包含在文本框中键入的所有字段,而不仅仅是最后一个字段。我知道这是一个关闭问题,但我不确定在当前情况下如何解决这个问题。
谢谢
$scope.addTodo = function() {
$scope.todos.push({text:$scope.todoText1,text:$scope.todoText2,text:$scope.todoText3,text:$scope.todoText4,done:false});
$scope.todoText1 = '';
$scope.todoText2 = '';
$scope.todoText3 = '';
$scope.todoText4 = '';
};
<form ng-submit="addTodo()">
<input type="text" ng-model="todoText1" size="30"
placeholder="add new todo here1"><br />
<input type="text" ng-model="todoText2" size="30"
placeholder="add new todo here2"><br />
<input type="text" ng-model="todoText3" size="30"
placeholder="add new todo here3"><br />
<input type="text" ng-model="todoText4" size="30"
placeholder="add new todo here4"><br />
<input class="btn-primary" type="submit" value="add">
</form>
最佳答案
您应该在 JSBIN 中看到控制台错误并浏览Does JSON syntax allow duplicate keys in an object?
Line 8: Duplicate key 'text'.
代码
$scope.todos = [
{todoText1:'learn angular',
done:true
},
{
todoText1:'build an angular app', done:false
}];
$scope.addTodo = function() {
$scope.todos.push(
{
todoText1:$scope.todoText1,
todoText2:$scope.todoText2,
todoText3:$scope.todoText3,
todoText4:$scope.todoText4,
done:false
});
$scope.todoText1 = '';
$scope.todoText2 = '';
$scope.todoText3 = '';
$scope.todoText4 = '';
};
HTML
<ul class="unstyled">
<li ng-repeat="todo in todos">
<input type="checkbox" ng-model="todo.done">
<span class="done-{{todo.done}}">{{todo.todoText1}} {{todo.todoText2}} {{todo.todoText3}} {{todo.todoText4}}</span>
</li>
</ul>
关于javascript - 如何解决AngularJS中的关闭问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729973/