[Angular.js + JSF]无法在ng-repeat

时间:2015-10-19 07:49:32

标签: javascript angularjs jsf

我有一个带有ArrayList语言的Bean。使用languages.getname(index),我可以使用Bean.Lanuages.get(index).name

获取该语言的名称(字符串)。

我在numberofLanguages中保存了ArrayList的长度-1(因为索引以0开头,长度为1)。

现在,我试图在多重选择中查看每种语言的名称,该名称是使用ng-repeat构建的。

我的script.js的重要部分:

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

app.controller("LanguageCtrl", languageController);

function languageController($scope){{
      $scope.range = function(min, max, step){
        step = step || 1;
        var input = [];
        for (var i = min; i <= max; i += step) input.push(i);
        return input;
      };
};
}

我的.htmlx的重要部分:

<div class="panel-group col-md-12" id="accordion" role="tablist"
aria-multiselectable="true">
    <div ng-repeat="n in range(0,#{Bean.numberOfLanguages})">   
        <div class="panel panel-default">
            <div class="panel-heading" role="tab">
                <h4 class="panel-title">
                <a role="button" data-toggle="collapse"
                   data-parent="#accordion" href="#lang-german"
                   aria-expanded="true" aria-controls="lang-german">
                   #{Bean.Languages.get($index).name}
                </a>
                </h4>
            </div>

ng:repeat工作正常,我的ArrayList中有两种语言,它显示内容两次,但它只显示第一种语言的名称两次。我测试了#{Bean.Languages.get(1).name,然后显示了第二语言的名称。

但我不想强调它,因为将来会有更多的语言。那么我怎样才能获得当前的语言?

1 个答案:

答案 0 :(得分:0)

$ index从0开始而不是从1开始。在您的情况下,语言一是索引0,语言二索引1