Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在ng中,重复如何获取筛选器中的$last项?_Angularjs_Angularjs Ng Repeat - Fatal编程技术网

Angularjs 在ng中,重复如何获取筛选器中的$last项?

Angularjs 在ng中,重复如何获取筛选器中的$last项?,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,我定义了一组语言对象,如下所示: $scope.languages = [ {'name':'English', value:'english', 'checked':true, 'available': true}, {'name':'German', value:'german', 'checked':false, 'available': true}, {'name':'Spanish', value:'spanish', 'checked':true, 'avai

我定义了一组语言对象,如下所示:

$scope.languages = [
    {'name':'English', value:'english', 'checked':true, 'available': true},
    {'name':'German', value:'german', 'checked':false, 'available': true},
    {'name':'Spanish', value:'spanish', 'checked':true, 'available': true}
];
<div class="form-group">
    <label for="description">Languages</label>
    <div class="checkbox" data-ng-repeat="language in languages">
        <label><input type="checkbox" ng-model="language.checked">{{language.name}}</label>
    </div>
</div>
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages">
        <span ng-if="language.checked">{{language.name + ($last ? '' : ',')}}</span>
    </div>
    <div class="clear"></div>
</div>  
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages | filter: {checked: true}">
        {{language.name + ($last ? '' : ',')}}
    </div>
    <div class="clear"></div>
</div>  
然后我将它们显示在如下复选框中:

$scope.languages = [
    {'name':'English', value:'english', 'checked':true, 'available': true},
    {'name':'German', value:'german', 'checked':false, 'available': true},
    {'name':'Spanish', value:'spanish', 'checked':true, 'available': true}
];
<div class="form-group">
    <label for="description">Languages</label>
    <div class="checkbox" data-ng-repeat="language in languages">
        <label><input type="checkbox" ng-model="language.checked">{{language.name}}</label>
    </div>
</div>
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages">
        <span ng-if="language.checked">{{language.name + ($last ? '' : ',')}}</span>
    </div>
    <div class="clear"></div>
</div>  
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages | filter: {checked: true}">
        {{language.name + ($last ? '' : ',')}}
    </div>
    <div class="clear"></div>
</div>  

语言文字
{{language.name}
当它们被打开和关闭时,我会显示一个列表,如下所示:

$scope.languages = [
    {'name':'English', value:'english', 'checked':true, 'available': true},
    {'name':'German', value:'german', 'checked':false, 'available': true},
    {'name':'Spanish', value:'spanish', 'checked':true, 'available': true}
];
<div class="form-group">
    <label for="description">Languages</label>
    <div class="checkbox" data-ng-repeat="language in languages">
        <label><input type="checkbox" ng-model="language.checked">{{language.name}}</label>
    </div>
</div>
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages">
        <span ng-if="language.checked">{{language.name + ($last ? '' : ',')}}</span>
    </div>
    <div class="clear"></div>
</div>  
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages | filter: {checked: true}">
        {{language.name + ($last ? '' : ',')}}
    </div>
    <div class="clear"></div>
</div>  

语言:
{{language.name+($last?'':',')}
只要选择了最后一种语言,则不会显示最后一个逗号。但如果未选择最后一种语言(西班牙语),则会错误显示最后一个逗号


我需要像
$last(isChecked)
这样的东西,而不是
$last
。我该怎么做?

只需在三元组中指定:

language.name + ($last && language.checked ? '' : ',')
试试这个:

<div class="dataValue text-success" data-ng-repeat="language in languages track by $index">
    <span ng-if="language.checked">{{language.name + (($index==languages.length && language.checked) ? '' : ',')}}</span>
</div>

{{language.name+($index==languages.length&&language.checked)?“”:“,”)}

通过在ng repeat中添加一个过滤器,您只能对选中的项目进行迭代,如下所示:

$scope.languages = [
    {'name':'English', value:'english', 'checked':true, 'available': true},
    {'name':'German', value:'german', 'checked':false, 'available': true},
    {'name':'Spanish', value:'spanish', 'checked':true, 'available': true}
];
<div class="form-group">
    <label for="description">Languages</label>
    <div class="checkbox" data-ng-repeat="language in languages">
        <label><input type="checkbox" ng-model="language.checked">{{language.name}}</label>
    </div>
</div>
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages">
        <span ng-if="language.checked">{{language.name + ($last ? '' : ',')}}</span>
    </div>
    <div class="clear"></div>
</div>  
<div class="dataRow">
    <div class="dataLabel">Languages:</div>
    <div class="dataValue text-success" data-ng-repeat="language in languages | filter: {checked: true}">
        {{language.name + ($last ? '' : ',')}}
    </div>
    <div class="clear"></div>
</div>  

语言:
{{language.name+($last?'':',')}
这样您就知道最后一个元素已被选中

这是一把小提琴