从AngularJS中的逗号分隔字符串列表分割和映射数组

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)

Abd*_*lam 5

我想如果你寻找这样的输出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)