javascript - 如何在angularjs中将对象插入数组?

标签 javascript angularjs

我正在使用 Ionic Framework 和 angularjs 开发一个应用程序。这里我在 ng-repeat 中使用复选框。使用这个我可以将复选框选中的值插入到数组中。但它就像字符串一样插入。

就像 ["编码","测试"] 。

但我想要它像对象一样。

就像 ["object","object"] 。在该对象内部应该存在值。

HTML代码是

<div class="action-checkbox" ng-repeat="task in projecttasks">
      <h3>{{task.projectName}}</h3>
      <ul>
        <li ng-repeat="subtask in task.subTasks" ng-click="addprjtaskList(task,subtask)">
          <input id="{{subtask._id}}" name="{{subtask._id}}" type="checkbox" value="{{subtask.subTaskName}}" ng-checked="selection.indexOf(subtask.subTaskName) > -1" ng-click="toggleSelection(subtask.subTaskName)" class="hide"/>
          <label for="{{subtask._id}}" > 
            {{subtask.subTaskName}}
          </label>
        </li>
      </ul>
    </div>

Controller 代码是

$scope.selection = [];
  // toggle selection for a given fruit by name
    $scope.toggleSelection = function toggleSelection(fruitName) {
      var idx = $scope.selection.indexOf(fruitName);
      // is currently selected
      if (idx > -1) {
        $scope.selection.splice(idx, 1);
        console.log($scope.selection);
      }

      // is newly selected
      else {
        $scope.selection.push(fruitName);
        console.log($scope.selection);
      }
    };

谁能帮我做到这一点..

最佳答案

toggleSelection(fruitName) 你正在传递一个字符串

那么你正在做

$scope.selection.push(fruitName)

它正在做它被告知的事情!

您需要将对象传递给函数...

ng-click="toggleSelection(subtask.subTaskName)"

应该是...

ng-click="toggleSelection(subtask)"

然后...

推它!

关于javascript - 如何在angularjs中将对象插入数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34441036/

相关文章:

javascript - 在客户端执行 jsx 转换

javascript - Bootstrap 2.3.2 中缺少字形图标

javascript - 提醒数组内的数据细节

javascript - 除了 Promises 之外,还有什么模式可以编排函数调用吗?

javascript - 如何在严格模式下找到函数调用者

javascript - AngularJS中的Web服务参数?找不到解决方案

javascript - Express + EJS - 将参数传递给 EJS View

javascript - 如何模拟 `angular.element`

javascript - AngularJS - ng-include View Controller 中的服务变量更改不会传播到父 Controller

html - 自动填充 html 选择 AngularJS