无法使用ng-repeat将数组内容显示为复选框

时间:2017-03-30 14:55:07

标签: angularjs

我的控制器中有以下内容:

var myApp = angular.module("myApp", []);

myApp.controller("TestCtrl", ['$scope', function($scope) {
  $scope.rows = [
    'Facebook',
    'Twitter',
    'Pinterest',
    'Instagram',
    'Tumblr',
    'Google'
  ];
}]);

我试图展示像这样的内容

<div class="container">
  <div ng-app="myApp">
    <div ng-controller="TestCtrl">
          <label ng-repeat="row in rows">
            <input type="checkbox" ng-checked="row.selected" ng-model="row.selected" />{{row}}</label>
    </div>
  </div>

现在项目显示,但我无法查看复选框, 检查此Plunker

1 个答案:

答案 0 :(得分:0)

为了让您的复选框可以检查,您需要在那里传递有效的ng-model。在您的情况下,row.selected无效,因为每个row都是字符串而不是对象。

您可以改为使用$scope.rows数组:

$scope.rows = [{
    name: 'Facebook',
    selected: false
  }, {
    name: 'Twitter',
    selected: false
  }, {
    name: 'Pinterest',
    selected: false
  }, {
    name: 'Instagram',
    selected: false
  }, {
    name: 'Tumblr',
    selected: false
  }];

这里有forked plunker,其复选框可以检查