我将AngularJS与Apache Cordova(又名:Ionic)结合使用,用于混合移动应用,并且我正在使用ng-bind- HTML功能。我们的想法是根据Object的值生成HTML元素。但是,我注意到HTML没有重新编译"或者当价值改变时的任何事情,这对我自己造成了很大的麻烦。
我为数组中的每个值创建一个输入字段。然后使用可以使用按钮更改的数组索引。因此,例如,数组索引1可能有3个输入字段,但数组索引2可能有5个。问题是HTML在使用索引时不会更新。
例如,这里有一些HTML代码:
<div id="container" ng-bind-html="genHTML()"></div>
<button class="button" ng-click="next()">Current index: {{index}}</button>
这里有一些JavaScript
function controller($scope) {
$scope.object = [ ['a', 'b', 'c'], ['d', 'e'] ];
$scope.index = 0;
$scope.genHTML = function() {
var html = "";
for(var i = 0; i < $scope.object[$scope.index].length; i++) {
html += '<input type="text" ng-model="object[index]['+i+']">';
}
return html;
};
$scope.next = function() {
$scope.index++;
};
}
单击该按钮时,$scope.index
的值会增加,但$scope.genHTML
生成的输入字段不会更新。我该如何解决这个问题?
注意:我使用bind-html-compile
代替ng-bind-html
,以便重新编译angular指令。资料来源:https://github.com/incuna/angular-bind-html-compile