I have tons of data in JSON format in my angular app,
[
{"link": "https://stackoverflow.com"},
{"link": "https://stackoverflow.com"},
{"link": "id-aW783D"}, //This is a wrong data
{"link": "https://stackoverflow.com"}
]
But as you can see in JSON, 3rd object has an invalid value (NOT A LINK),
Now I need to bind those links with a on it, but {"link": "id-aW783D"} goes invalid in a because it's not a valid URL.
I added this code to avoid invalid links, but with this code and heavy data, app takes lots of time to load.
for(i; i < $scope.data.length; i++){
item = $scope.data[i];
if (item.link.indexOf("https://")){
item.ID = item.link;
}
else item.ID = '';
}
Now my Question is, is there any other way to do this, like with ng-if ?
angular.module('myApp', []).controller('myCtrl', function($scope) {
$scope.data = [
{"link": "https://stackoverflow.com"},
{"link": "https://stackoverflow.com"},
{"link": "id-aW783D"},
{"link": "https://stackoverflow.com"}
];
var i = 0;
for (i; i < $scope.data.length; i++) {
item = $scope.data[i];
if (item.link.indexOf("https://")) {
item.ID = item.link;
} else item.ID = '';
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<ul ng-repeat="j in data track by $index">
<li ng-if="j.ID">{{j.link}}</li>
<li ng-if="!j.ID"><a href="{{j.link}}">{{j.link}}</a></li>
</ul>
</div>
filter!