我想将两个逗号分隔的列表CENTURY, BADGER
和65, 85
合并成一个数组,例如:[{name: 'CENTURY', price: '65'}, {name: 'BADGER', price: 85}]
,这些列表位于json对象中:
{
unit: '35 lb',
brands: 'CENTURY, BADGER'
prices: '65, 85'
}
所以我要做的是一个过滤器:
angular
.module( 'app.purchases.products' )
.filter( 'mergeDetails', mergeDetails );
function mergeDetails() {
return function ( product ) {
_.merge( product.brands, product.prices );//Using lodash, any suggestion?
console.log('brands ', product.brands);
return product.brands;//`_.merge` will add prices to brands
}
}
我想知道如何将滤镜应用于插值
{{ }}
,以便获取数组并在ng-repeat
中使用它,在这里使用它:<tr ng-repeat="product in products">
<td>{{product.unit}}</td>
<td>
<!-- Here I should filter to ng-repeat the resulting array -->
{{product.brands +' '+ product.prices}}
</td>
</tr>
最佳答案
我认为,如果您寻找类似CENTURY, BADGER, EXO
的输出,则只需要这样做
<li ng-repeat="p in products">
<p>{{p.brands}}</p>
</li>
我对此进行编辑以添加过滤器可能有所帮助
添加此过滤器
.filter('customSplit', function() {
return function(input) {
console.log(input);
var ar = input.split(','); // this will make string an array
return ar;
};
});
然后将您的HTML View 修改为
<li ng-repeat="p in products">
<p ng-repeat="brand in (p.brands | customSplit)">{{ brand }}{{$last ? '' : ', '}}</p>
</li>