Jon*_*ano 3 javascript dictionary angularjs angularjs-filter
我想合并两个以逗号分隔的列表,CENTURY, BADGER&65, 85形成一个数组,如:[{name: 'CENTURY', price: '65'}, {name: 'BADGER', price: 85}],列表位于 json 对象中:
{
unit: '35 lb',
brands: 'CENTURY, BADGER'
prices: '65, 85'
}
Run Code Online (Sandbox Code Playgroud)
所以我所做的是一个过滤器:
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
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道如何将过滤器应用于插值,{{ }}以便我可以获取数组并在 a 中使用它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>
Run Code Online (Sandbox Code Playgroud)
我想如果你寻找这样的输出CENTURY, BADGER, EXO你只需要这样做
<li ng-repeat="p in products">
<p>{{p.brands}}</p>
</li>
Run Code Online (Sandbox Code Playgroud)
我编辑此内容以添加过滤器可以帮助添加此过滤器
.filter('customSplit', function() {
return function(input) {
console.log(input);
var ar = input.split(','); // this will make string an array
return ar;
};
});
Run Code Online (Sandbox Code Playgroud)
并且您的 HTML 视图修改为
<li ng-repeat="p in products">
<p ng-repeat="brand in (p.brands | customSplit)">{{ brand }}{{$last ? '' : ', '}}</p>
</li>
Run Code Online (Sandbox Code Playgroud)