2017-04-03 3 views
0

ich folgenden Code haben, der druckt 1.57 lakh View More DetailsAngularJS Filter nur Textnachricht erforderlich

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

Würde nur 1.57 lakh statt Drucken aller zusätzlichen Daten drucken möchten. Können wir hier Filter verwenden, um zusätzliche Daten zu eliminieren? Wenn ja, wie können wir dies erreichen, oder gibt es Methoden dafür?

+1

Können Sie nicht nur tun '

Preis auswählen: {{Object.price.replace ("Weitere Informationen anzeigen", "") }}

' – George

+0

Ich denke, Sie können benutzerdefinierte Filter schreiben. Weitere Details finden Sie unter https://docs.angularjs.org/guide/filter. –

Antwort

2

Für eine Zeichenfolge erstellen, die y ändert ou kann regex verwenden Sie den letzten Teil der Zeichenfolge

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

danke George, das funktioniert was passiert, wenn ich eine Zeichenfolge habe, die sich sehr häufig ändert, zB: 'View April details' oder' view March details'. Hier im April und März ändern sich die Strings häufig. Können wir hier reguläre Ausdrücke verwenden ?? ex: 'view * details' –

+0

danke es hat mein Problem gelöst. –

1

Sie können eine Funktion erstellen und split verwenden, um die relevanten Daten abzurufen und zurückzugeben.

Demo

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>

Oder Sie können einen benutzerdefinierten Filter wie dies auch

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>