<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script>
var app = angular.module("test", []);
app.run(function() {
angular.element.prototype.has = function(selector) {
if (! this.length || typeof this === 'undefined') return false;
console.log (selector);
};
});
app.directive('cacat', function() {
return {
restrict: 'E',
link: function (scope, element, attrs) {
var g = element[0].querySelector('span');
if (angular.element(g).length) {
element.has(element.has(g));
}
}
};
});
</script>
</head>
<body ng-app="test">
<cacat>
<span>da</span>
</cacat>
</body>
</html>
Почему так называется .has? И первый раз я получаю хороший элемент, второй раз я получаю неопределенный элемент, и он переходит из условия.Функция называется 2 раза, я ожидал один раз
Я не думаю, что второе утверждение верно, оно не возвращает 'false', как определено. 'Console.log' будет запускаться из-за'! this.length' – Dieterg
Я ЕСМЬ непреднамеренно – user3032469