我正在實現一個過濾器標記大小,它可以爲分隔符提供可選參數。使用過濾器方法給出可選參數angular
默認情況下,過濾器會生成給定輸入的單個字符的逗號分隔字符串。如果提供分隔符,則輸入字符串中的各個字符由指定的分隔符分隔。
沒有令牌提供了:(記號化處理用逗號):在
{{"hello world"|tokenize}}
結果:
h,e,l,l,o,,w,o,r,l,d
令牌所提供:
{{"hello world"|tokenize:'#'}}
結果:
h#e#l#l#o##w#o#r#l#d.
問題是我無法傳遞可選參數並接收它以可選分隔符爲基礎分隔字符串。
代碼的html:
<!doctype html>
<html ng-app="myApp">
<head>
<script src="angular.js"></script>
<script src="filter.js"></script>
</head>
<body>
<div ng-controller='HelloController'>
<label>Input</label><input ng-model='greeting'><br><br>
<label>Delimeter</label><input ng-model='delimeter'><br>
<p>{{greeting | tokenize}}(default)</p>
<p>{{greeting| tokenize:arg1}}(with Option)</p>
</div>
</body>
</html>
和我filter.js代碼:
angular.module('myApp', [])
.controller('HelloController', function($scope) {
$scope.greeting = "Angular is Awesome";
//$scope.delimeter="#";
})
.filter('tokenize', function() {
return function(value) {
if (angular.isString(value)) {
var abc = [];
abc = value.split('');
value = abc.join();
return value;
} else {
return value;
}
};
});
看@emed一個向下走。 「在你的過濾函數中聲明另一個參數」。之後,分割可選參數或「'。 – o4ohel
好的,如果我必須返回兩個值與默認分隔符和其他與可選參數一起。如何做到這一點。 – Rahila
就像我必須給出兩個輸出:h,e,l,l,o,w,o,r,l,d(默認),另一個輸出h#e#l#l#o ## w#o #R·L#d。 – Rahila