Я делаю список URL-адресов внутри углового приложения. Большинство URL-адресов ведут к https://
example.io
... Однако некоторые из них имеют такие URL-адреса, как https://
example.io
.Я не хочу указывать URL-адрес внутри каждого объекта ... Я просто хочу проверить URL-адрес, а затем либо открыть веб-сайт с помощью http://
или https://
в зависимости от того, что действительно.
Я используюng-click и привязка его к открытому окну с URL вдоль вложенного изображения.
Index.html
<head>
<script src="js/shared/angular.min.js"></script>
<link rel="stylesheet" href="css/row.css">
</head>
<body ng-app="MainApp">
<div ng-controller="Main" ng-cloak>
<div id="RowDiv">
<button style="visibility: hidden; width: 25px;"></button>
<a ng-repeat="r1 in r1s" ng-click="openurl(r1.url.$valid==true?r1.url:'https://' + r1.name + '.io')" ng-cloak>
<img ng-src="img/{{r1.name}}.png" height="40px">
</a>
<button style="visibility: hidden; width: 25px;"></button>
</div>
</div>
<button id="LftBtn" style="z-index: 1000;" >
<i id="L-Arrow"></i>
</button>
<button id="RgtBtn" style="z-index: 1000;" >
<i id="R-Arrow"></i>
</button>
<script src="js/protractor.js"></script>
<script src="js/row.js"></script>
</body>
protractor.js
var app = angular.module("MainApp", []);
// - - app controllers - - \\
app.controller('Main', ['$scope', function($scope) {
$scope.r1s = [
{name: 'Surviv', url: 'https://google.com'},
//Just a test, urls will be changed later
{name: 'Zombsroyale'},
{name: 'Bruh'},
{name: 'Krunker'},
{name: 'Shellshock'},
{name: 'Diep'},
{name: 'Tanked'},
{name: 'Gats'},
{name: 'Warbot'},
{name: 'Counterstroke'}
];
$scope.openurl = function(url){
if(window.parent == window.top) {
//If outside
window.open(url, "_blank"});
} else {
//If inside
window.open(url, '_parent');
}
};
}]);
Главное здесь - проверка url
и ng-click ="openurl(r1.url.$valid == true ? 'http://' + r1.name '.io' : 'https://' + r1.name + '.io')"
Я не знаю, почему это не такне работает, он откроет всплывающее окно, но полностью проигнорирует троичные параметры и параметры $ valid ...
Я попытался поменять
- .$valid==true
w /
- .$valid==false
но я получаю тот же результат!Почему это не работает?
Отлично подойдет пример работы с plunkr, jsfiddle или codepen и т. Д.