Мне нужно закрыть любой открытый компонент, щелкнув вне этого компонента с помощью угловых символов. Есть ли угловая директива для размытия событий? Если нет, как я могу это сделать?Что такое замена размытия jQuery в AngularJS?
ответ
Вы можете использовать угловую UI @http://angular-ui.github.io/ui-utils/ которые обеспечивают размывают, Focus, дважды щелкает событие или Bind обратного вызова в любом случае изначально не поддерживается угловым Js
Ниже один из примера события размытия:
<input ui-event="{ blur : 'blurCallback()' }">
<script>
$scope.blurCallback = function() {
alert('Goodbye');
};
</script>
sir использует его в моем приложении, но ui-event - это огонь перед изменением значения модели. Я вызываю функцию test (ng-model) на ui-event = {blur:} в функции, которая покажет мне старое значение, а также в первый раз undefined –
директив, поддерживающих фокус и размытия события будут включены в следующий релиз AngularJS (reference), который должен быть в ближайшее время (я думаю, в течение следующего месяца). Если вы не можете ждать, как это предлагает JQueryGuru, вы можете использовать директиву uiEvent
проекта AngularUI.
Если вы не хотите использовать угловые ui's ui-event
, вы также можете создать небольшую директиву до тех пор, пока не будет выпущена следующая версия Angular
.
app.directive('ngBlur', function() {
return function(scope, elem, attrs) {
elem.bind('blur', function() {
scope.$apply(attrs.ngBlur);
});
};
});
Просто поместите директиву, где вам это нужно:
<input type="text" ng-model="foo" ng-blur="doFoo()" />
В основном то, что директива делает это связать событие размытия элемента (в нашем примере на входе), а затем, когда событие (мы оставляем вход) угловой будет применять то, что находится в директиве. Поэтому в нашем случае doFoo()
будет запущен, если мы оставим вход.
Plunker здесь: http://plunker.co/edit/J4ZEB6ppvkiIvdW9J2VU?p=preview
Эй, Иисус, когда я добавляю это в свой код, он говорит: «Невстреч ReferenceError: приложение не определено 'wtf? – pythonian29033
ng-blur не работает со стабильной версией, должна использоваться самая последняя, нестабильная версия. – pythonian29033
'app' - это просто ссылка на мой модуль. используйте 'angular.module ('yourmodule'). директива ...'. Угловой 1.2 поставляется с директивой размытия, так что это для 1.0.x или 1.1.x –
Уроженец нг-Размытие «Не работает вообще в последнее неустойчиво :(» http://docs.angularjs.org/api/ng.directive:ngBlur
Yo это можно исправить, выполнив действия этого поста «Там нет прямой поддержки события размытия в AngularJs. Но мы можем добавить поддержку события размытости путем создания директивы.» http://coding-issues.blogspot.in/2013/10/angularjs-blur-directive.html
на угловых 1.2.24 *, есть ng-blur
директивы.
// View
<input
type="text"
placeholder="Hello World!"
ng-model="foo.bar"
ng-blur="onBlur($event)"
>
// Controller
$scope.onBlur = function($event) {
return $event;
}
* Не знаю, в чем была введена угловая версия ng-blur
.
Первый ответ правильный, но я хотел бы отметить, что это не событие jqury, это событие javascript. Если вы хотите получить действительно хорошее программирование на стороне клиента, попробуйте выяснить, что делает jquery под капотом. – bigblind