2016-07-24 60 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

相关问题