2016-09-21 168 views
0

我试图用连续的循环打印逗号分隔值,但得到双逗号。如何使用ngrepeat中使用数组内部div打印逗号分隔值?

更新:

假设我有我的数组这样的数据:

var carModel = [model:"1",model:"2"]; 
var carNames = [Name:"Abc",Name:"Xyz"]; 
var Price = 1000; 

预期输出:

1 as Car1,2 as Car2,Abc as Name1,Xyz as Name2,1000 as price 

代码:

<div ng-repeat="data in carModel"> 
    {{data.model}} 
    <div>as</div> 
    Car{{ $index + 1 }} 
    <span ng-if="!$last">,</span> 
</div> 

<div ng-repeat="data in carNames"> 
    {{data.Name}} 
    <div>as</div> 
    Car{{ $index + 1 }} 
    <span ng-if="!$last">,</span> 
</div> 

<span ng-if="carModel.length > 0 || carNames.length > 0" > , </span> 
<div> 
    {{ Price }} 
    <div>as</div> price 
</div> 

现在,这给了我下面包含两个逗号输出:

1 as Car1,2 as Car2,Abc as Name1,,Xyz as Name2,1000 as price 
+0

@ryanyuyu在上面注明:1的分享帮助, –

回答

4
<div ng-repeat="data in cars"> 
    {{data.model}} 
    <div>as</div> 
    Car{{ $index + 1 }} 
    <span ng-if="!$last">,</span> 
</div> 

$last可以用来知道,如果当前元素是最后您的收藏。

+0

好这个工作正常,但我得到的问题时,我有2个连续的循环。看我更新的问题 –

+0

猜你必须在你的逻辑上工作一点点才能找到合适的条件。 – nubinub

2

其他可能的无棱角的解决方案:

  • 如果这仅仅是一个长字符串,你没有做任何其他与汽车的数据,只是装配在字符串中的JavaScript与String.join()
  • 采用基于css的解决方案。例如,使用:last-of-type pseudo selector。例如:

    <div ng-repeat="data in cars" class="car">{{data.model}} 
              <div>as</div> 
              Car{{ $index + 1 }} 
    </div> 
    

    的CSS:

    .car::after { 
        content: ','; 
    } 
    .car:last-of-type::after { 
        content: ''; 
    } 
    

    Demo on plunker

+0

非常感谢你的解决方案,这个工作,但唯一的问题是,这辆车:last-of-type :: after属性不能使用span tag.only使用div –