2016-09-22 8 views
1

'|'文字の角1フィルター表現の嘘角フィルター式でパイプ文字を使用する

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

使用できるエスケープ文字はありますか?私は|文字は、フィルタを呼び出すために使用されますが、私は2つのプロパティ '名前'と 'ID'を連結するために使用したいと思います。

はい、私はコントローラに2つのプロパティを連結する関数を書くことができますが、式でこれを行う方法があれば興味があります。

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" > 
+0

を見つけてください。アイテムがリストであるかどうかあなたは入力と予想される出力を更新してください。 – Vikash

+0

@Vikash私は質問を更新しました –

+0

以下の解決策を見つけてください。 – Vikash

答えて

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(',')}}"/> 

としてご入力されたテキストは、あなたがacheiveしようとしているものに私に詳細を記入してくださいすることができ作業Plnkr Working Plnkr

+0

@Sven Lauterbachこのソリューションを試しましたか? – Vikash

+0

それは動作します、ありがとう –

関連する問題