キーが押されたときにボタンのクリックをトリガーしようとしています。関数を使用してこれを行っていtriggerHandler
ますが、これが上記のエラーの原因です。ある種の循環参照/ループを作成したに違いないと思っていますが、どこにあるのかわかりません。
これは私のHTMLです:
<button id="demoBtn1" hot-key-button hot-key="hotKeys.primaryTest" class="po-btn primary-btn" type="submit" ng-click="btnFunction()"></button>
これが私のコントローラーです:
.controller('BtnCtrl', function ($scope) {
$scope.checkKeyPress = function ($event, hotKeyObj) {
for(var key in hotKeyObj) {
if($event.keyCode == hotKeyObj[key].keyCode) {
var id = hotKeyObj[key].btnId;
hotKeyObj[key].funcTriggered(id);
}
}
}
$scope.clickFunction = function(id) {
var currentButton = angular.element(document.getElementById(id));
currentButton.triggerHandler("click");
}
$scope.btnFunction = function() {
console.log("clickFunction1 has been triggered");
}
$scope.hotKeys = {
'primaryTest': {
keyCode: 49,
keyShortcut: "1",
label: "Button",
btnId: 'demoBtn1',
funcTriggered: $scope.clickFunction
},
// more objects here
}
}
})
そして私の指示はここにあります:
.directive("hotKeyButton", function() {
return {
controller: 'BtnCtrl',
scope: {
hotKey: '='
},
transclude: true,
template: "<div class='key-shortcut'>{{hotKey.keyShortcut}}</div><div class='hotkey-label'>{{hotKey.label}}</div>"
};
})
少し進行中の作業なので、所々に小さなエラーがあるのではないかと思いますが、キーを押してからbtnFunction
トリガーされるまでのロジックに主に関心があります。エラーはcurrentButton.triggerHandler("click")
回線上で発生します。
誰かが私がしたことを見ることができますか? ありがとう。