簡體   English   中英

在Angular Filter表達式中使用管道字符

[英]Use the pipe character in an Angular Filter expression

我想使用'|' Angular 1 Filter表達式中的字符

{{ ctrl.items | map: 'name|id' | join: ',' }}

我可以使用某種轉義字符嗎? 我知道 字符用於調用過濾器,但我想用它來連接兩個屬性“名稱”和“ id”。

是的,我知道我可以在控制器中編寫一個函數來連接這兩個屬性,但是我對是否有一種在表達式中執行此操作的方法感興趣。

PS:過濾器映射和聯接來自此倉庫: https : //github.com/a8m/angular-filter

更新

在控制器中:

ctrl.items = [{ name: 'ape', id:1 }, { name: 'john', id:2 }];

在模板中:

<input type='hidden' value="{{ ctrl.items | map: 'name|id' | join: ',' }}" >

預期輸出:

<input type='hidden' value="ape|1,john|2" >

您必須創建一個自定義過濾器以形成您提到的值。

var app = angular.module('myApp', []);
app.filter('map', function() {
  return function(input, propName) {
  var prop = propName.split("|");
  return input.map(function(item) {
  return item[prop[0]] +"|"+ item[prop[1]];
   });
  };
});

然后輸入文本為

<input type="text" value="{{(ctrl.items | map:'name|id').join(',')}}"/>

請找到工作的Plnkr 工作的Plnkr

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM