【问题标题】:angularjs filter only required text messageangularjs过滤器只需要短信
【发布时间】:2017-04-03 09:35:42
【问题描述】:

我有以下代码打印1.57 lakh View More Details

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

只想打印1.57 lakh,而不是打印所有额外的数据。 我们可以在这里使用过滤器来消除额外的数据吗?如果是,我们如何才能做到这一点或有什么方法可以做到这一点?

【问题讨论】:

  • 你能不能只做&lt;h4&gt; Price: {{Object.price.replace(" View More Details","")}}&lt;/h4&gt;
  • 我认为你可以编写自定义过滤器。您可以找到更多详细信息docs.angularjs.org/guide/filter

标签: javascript ruby-on-rails angularjs


【解决方案1】:

对于更改的字符串,您可以使用正则表达式选择字符串的最后一部分

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>

【讨论】:

  • 感谢 George,如果我有一个经常更改的字符串,例如:View April detailsview March details,这会起作用。这里 April 和 March 是字符串变化频繁.. 我们可以在这里使用正则表达式吗?例如:view * details
【解决方案2】:

您可以创建一个函数并使用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>

或者你也可以像这样创建一个自定义过滤器

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多