2016-02-11 2 views
0

У меня есть этот элемент, который «вводит» событие нажатия клавиши, которое я хочу запустить с помощью ng-click другой кнопки.Как я могу запустить событие нажатия клавиши ввода <input type = "text"> программно в angular.js?

т.е.

позволяет сказать:

<button ng-click="clickEvent()"></button> 
<input type="text" id="textbox"></input> 

Plnkr здесь: http://plnkr.co/edit/tEVoHAAcyqQzWpc9iYpo?p=preview

Пожалуйста, помогите!

+1

Вы могли бы разработать! Почему вы хотите поднять другие кнопки? просто вызовите обработчик событий этой кнопки. – Imran

+0

Мне нужно нажать enter внутри поля «текст» X при нажатии кнопки Y. – jackOfAll

ответ

0

Вы можете достичь этого, создав угловую директиву. JSFiddle для справки - Demo См. Консоль после нажатия на кнопку Click Me !. Надеюсь, это поможет!

<body ng-app="myApp" ng-controller="myController"> 
    <h1>Hello JSFiddle!</h1> 
    <button id="btnClick" ng-click="clicked()" capture-keypress>Click Me !</button> 
    <input ng-keydown="keypress($event)" id="txtInput"> 
</body> 


app.controller('myController', function($scope) { 
    $scope.keypress = function($event) { 
    console.log('Key Event Fired'); 
    }; 
}); 

app.directive('captureKeypress', function($timeout) { 
    return { 
    scope: true, 
    link: function(scope, element, attrs) { 
     scope.clicked = function() { 
     $timeout(function() { 
      element.siblings('#txtInput').trigger('keydown'); 
     }) 
     } 
    } 
    } 
}); 
Смежные вопросы