javascript - 如何解决AngularJS中的关闭问题

标签 javascript jquery angularjs closures

我有一个 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>

DEMO

关于javascript - 如何解决AngularJS中的关闭问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729973/

相关文章:

javascript - 使用ajax为每个循环刷新div,结果错误

php - 适用于所有浏览器的 CSS 弹出框

javascript - 汉诺塔可视化器的计时动画

javascript - 使用 jQuery 在 IE10 中动态提交文件上传表单

javascript - 在 jquery 中的类名中使用点 : $ ('.B.Avf' ).toggle();

javascript - 如何将 firebase angularfire 数组排序为数周和数天?

javascript - Bootstrap下拉菜单,圆 Angular 不留

javascript - 循环 ID 并添加额外的 attr()

angularjs - Angular + Mocha 内存泄漏

javascript - Angular(使用 Firebase)应用程序部署到 Firebase 问题