I'm using angular.min.js file (AngularJS v1.6.4)
And I'm trying to implement a simple filter that reverses a string.
Here is my code:
main.js:
var app = angular.module("angularBlackbox", []);
app.filter('reverse', function () {
return function (item) {
item.split("").reverse().join("");
};
});
app.controller("MyController", function ($scope) {
$scope.data = {
message: ""
};
$scope.reversedMessage = function (message) {
return message.split("").reverse().join("");
}
});
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AngularJS Blackbox</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
</head>
<body>
<div ng-app="angularBlackbox">
<div ng-controller="MyController">
<input type="text" ng-model="data.message">
<h1>{{ data.message }}</h1>
<h1>{{ reversedMessage(data.message) }}</h1>
<h2>{{ data.message | reverse }}</h2>
</div>
</div>
<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="main.js"></script>
</body>
</html>
I get such result:
So we can see that:
<h2>{{ data.message | reverse }}</h2>
is not visible)Why is the custom filter not working?
return
formatted output from your filter.
app.filter('reverse', function () {
return function (item) {
//returned reversed string from here.
return item.split("").reverse().join("");
};
});