2017-04-03 6 views
0

私は1.57 lakh View More Detailsangularjsフィルタのみ必要なテキストメッセージ

<h4> Price: {{Object.price}}</h4> 

を印刷したコードのみ1.57 lakh代わりに、すべての余分なデータを印刷するのを印刷したい次ています。 余分なデータを削除するためにここでフィルタを使用できますか?はいの場合、これを達成するにはどうすればよいのですか?これを達成する方法はありますか?

+1

あなただけ行うことはできません '

価格:{{Object.price.replace( "ビュー詳細"、 "") }}

' – George

+0

私はカスタムフィルターを書くことができると思います。詳細はhttps://docs.angularjs.org/guide/filterをご覧ください。 –

答えて

2

OUは、文字列の最後の部分を選択するために、正規表現を使用することができます

angular.module("app", []) 
 
    .controller("ctrl", function($scope) { 
 
    $scope.price = "1.57 lakh View More Details"; 
 

 
    $scope.replaceText = function(text) { 
 
     return text.replace(/View \w* Details/g, ""); 
 
    } 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
    <h4> Price: {{replaceText(price)}}</h4> 
 
</div>

+0

Georgeさんに感謝します。これは、非常に頻繁に変更される文字列、たとえば「4月の詳細を表示」または「3月の詳細を表示する」があれば、これはどうしますか?ここで4月と3月は文字列の変更です。ここで正規表現を使用できますか?例: 'view * details' –

+0

それは私の問題を解決してくれてありがとう。 –

1

関数を作成し、splitを使用して関連するデータを取得して返すことができます。

デモ

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 
$scope.price = "1.57 lakh View More Details"; 
 

 
$scope.removeText = function(text){ 
 
return text.split('lakh')[0]+'lakh'; 
 
} 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
{{removeText(price)}} 
 
</div>

それとも、このようなカスタムフィルタを作成することができ、また、Yを変更した文字列については

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 
$scope.price = "1.57 lakh View More Details"; 
 

 
    
 
}) 
 
.filter('removeText',function(){ 
 
    return function(item){ 
 
    return item.split('lakh')[0]+'lakh'; 
 
    } 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
{{price | removeText}} 
 
</div>

関連する問題