var app = angular.module('myApp', []);
app.controller('OrderFormController', function($scope, $http, $filter, $window, $location) {
$scope.names = ['test','test2'];
$scope.retrieveSelectedClass = function(newValue, oldValue, $event) {
alert($event);
}
});
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<meta charset="utf-8"/>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
</head>
<body ng-app="myApp" ng-controller="OrderFormController">
<select ng-model="selectedName" ng-click="event = $event" ng-change="retrieveSelectedClass(selectedName, '{{selectedName}}', event)"
ng-options="(item.name||item) group by item.groupName for item in names"
class="code-helper" id="code-helperId">
<option value="">Select Option</option>
</select>
</body>
</html>
Я прочитал, что событие не фиксируется в ng-change.
Поэтому я изменил свой выбор на:
<select ng-model="selectedName" ng-click="event = $event" ng-change="retrieveSelectedClass(selectedName, '{{selectedName}}', event)"
ng-options="(item.name||item) group by item.groupName for item in names"
class="code-helper" id="code-helperId">
<option value="">Select Option</option>
</select>
И мой JS:
$scope.retrieveSelectedClass = function(newValue, oldValue, $event) {
}
но событие все еще не определено.
Я использовал это, чтобы обнаружить нажатие клавиши Ctrl:
$scope.retrieveSelectedClass = function(newValue, oldValue, $event) {
var windowsEvent = $window;
if (windowsEvent.event.ctrlKey) {
windowsEvent.open('/html/apexEditor.html?name=' + newValue.name, '_blank');
$scope.selectedName = possibleOldValues[0];
return;
}
}
но это не работает в Firefox, так как в Firefox нет $ windows.event.
Мне нужно обнаружить клавишу Ctrl и открыть в новой вкладке.
Я не могу сделать ann onkeyup или onkeydown, так как это событие всегда будет прослушиваться без необходимости.
Кто-нибудь может здесь помочь?