2015-06-26 81 views
0

我正在使用嵌套的ng-repeats在頁面上顯示內容。嵌套的ng-repeat會顯示一個複選框,並且該複選框的檢查狀態應該設置爲ng-repeat中數據的布爾值。我正在使用ng-checked並傳遞一個truthy值,但是,不管值如何,都會檢查複選框。在嵌套的ng-repeat中使用ng-checked複選框始終爲真

我已將我的代碼簡化爲演示,顯示行爲jsFiddle

HTML

<div ng-app="myApp"> 
    <div ng-controller="myController"> 
     <div ng-repeat="item in myArray"> 
      <h3>{{ $index }}.&nbsp;{{ item.title }}</h3> 
      <div ng-repeat="child in item.subArray"> 
       <h4>({{ child.id }}). {{child.title}} </h4> 
       <input type="checkbox" ng-checked="child.result" /> 
       <h6>Answer is: {{ child.result }}</h6> 
      </div> 
     </div> 
    </div> 
</div> 

的JavaScript

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

function myController($scope) { 
    $scope.myArray = [ 
      { id: "1", title: "my array 1", subArray: [ 
       { id: "1", title: "my sub array 1", result: "false" }, 
       { id: "1", title: "my sub array 2", result: "true" }, 
       { id: "1", title: "my sub array 3", result: "false" }, 
       { id: "1", title: "my sub array 4", result: "true" }, 
       { id: "1", title: "my sub array 5", result: "false" }] 
      }, 
      { id: "1", title: "my array 2", subArray: [ 
        { id: "1", title: "my sub array 1", result: "true" }, 
        { id: "1", title: "my sub array 2", result: "false" }, 
        { id: "1", title: "my sub array 3", result: "true" }, 
        { id: "1", title: "my sub array 4", result: "false" }, 
        { id: "1", title: "my sub array 5", result: "true" }] 
      }, 
      { 
       id: "1", title: "my array 3", subArray: [ 
        { id: "1", title: "my sub array 1", result: "false" }, 
        { id: "1", title: "my sub array 2", result: "false" }, 
        { id: "1", title: "my sub array 3", result: "true" }, 
        { id: "1", title: "my sub array 4", result: "false" }, 
        { id: "1", title: "my sub array 5", result: "false" }] 
      }, 
      { 
       id: "1", title: "my array 4", subArray: [ 
        { id: "1", title: "my sub array 1", result: "true" }, 
        { id: "1", title: "my sub array 2", result: "false" }, 
        { id: "1", title: "my sub array 3", result: "false" }, 
        { id: "1", title: "my sub array 4", result: "false" }, 
        { id: "1", title: "my sub array 5", result: "true" }] 
      }, 
      { 
       id: "1", title: "my array 5", subArray: [ 
        { id: "1", title: "my sub array 1", result: "true" }, 
        { id: "1", title: "my sub array 2", result: "true" }, 
        { id: "1", title: "my sub array 3", result: "false" }, 
        { id: "1", title: "my sub array 4", result: "true" }, 
        { id: "1", title: "my sub array 5", result: "true" }] 
      } 
     ]; 
} 

有人能解釋爲什麼會出現這種現象,並幫助我瞭解如何糾正呢?

回答

1

因爲child.resultstring而不是boolean條件總是true

使用下列內容:

ng-checked="child.result == 'true'"