2016-07-24 63 views
2

我想創建一個綁定到一個數組的元素,因爲當數組改變時,要更新的HTML。但是,這不起作用。爲什麼ng-bind不能和數組一起工作?

HTML

<body ng-controller="Game as game"> 

<div> 
    <span ng-bind="game.testString"></span> 
</div> 

<div> 
    <span ng-bind="game.testArray"></span> 
</div> 

<input type="button" ng-click="game.btnAddLetter()" value="Change"> 
</body> 

JS

angular.module('notesApp', []) 
    .controller('Game', [function() { 
     var self = this; 
     self.testString = 'a'; 
     self.testArray = ['a']; 

     self.btnAddLetter = function() { 
      self.testString = 'X'; 
      self.testArray.push('X'); 
     } 
    }]); 

我預計這兩個跨度將被更新。但是,只有testString已經更新。這是什麼原因發生的?如何解決這個問題呢?

回答

2

必須使用JSON過濾器:

<span ng-bind="game.testArray | json"></span> 
+0

爲什麼,如果我不使用此過濾器,該元素不更新? – Macabeus

+1

由於'ngBind'需要一個表達式,如下所示:https://docs.angularjs.org/api/ng/directive/ngBind。如果您正在使用基本類型,您也可以使用'{{game.testArray}} ...「 – developer033

相關問題