我的问题与在Angular.JS中创建substr有关
假设我有一个模型:
$scope.myName = 'John Smith'但是,当模型在页面上呈现时,我只需要名字的首字母,例如:
<p>{{myName | some directive/filter }}<p>产出应是::JS
我尝试创建了许多指令,但是即使我尝试过limitTo过滤器,也无法获取确切的输出,但是它只给出了名字的前两个字母。
发布于 2016-10-28 03:17:41
angular
.module('myApp',[])
.run(function($rootScope){
$rootScope.title = 'myTest Page';
})
.controller('testController', ['$scope', function($scope){
$scope.myName = 'saurabh raman';
}]).filter('filter', function() {
return function(input) {
var name = input;
var inls = name.match(/\b\w/g) || [];
inls = ((inls.shift() || '') + (inls.pop() || '')).toUpperCase();
return inls;
}
});
视图
<p>{{myName | filter}}</p>
</body>
</html>发布于 2016-10-28 03:26:46
假设名称标记由空间分隔,如您在问题中所述
<body>
<div ng-app="myApp" ng-controller="namesCtrl">
<label>Name : {{name}}</label><br/>
<label>Short Name : {{name|shortName}}</label>
</div>
<script>
var app = angular.module('myApp', []);
app.filter('shortName', function() {
return function(x) {
var shortName="", nameTokens=[];
nameTokens = x.split(" ");
nameTokens.forEach(function(token){ shortName+=token[0] });
return shortName;
};
});
app.controller('namesCtrl', function($scope) {
$scope.name = 'John Smith';
});
</script>
</body>发布于 2020-07-01 19:07:36
我希望有一个内置的过滤器,但似乎没有,所以我创建了这个过滤器:
var relConclusaoApp = angular.module("relatorioConclusaoApp", []);
relConclusaoApp.filter('onlyinitials', [function () {
return function (input) {
if (input) {
return input
.split(/\s+/)
.filter(s => s.length > 2)
.map(s => s.charAt(0).toLocaleUpperCase())
.join(".")
.concat(".")
}
return input;
}
}])这个过滤器将把Jansen楼改造成F.J. (例如)它应在模板中用作:
{{nameToBeTransformed | onlyinitials}}https://stackoverflow.com/questions/40297447
复制相似问题