javascript - $ एक बटन पर एक क्लिक घटना भेजते हुए पहले से ही प्रगति में है?



angularjs events (1)

आपका क्लिक इवेंट पाइज़च चक्र चला रहा है जो वर्तमान डाइजेस्ट चक्र से विरोधाभासी है, $timeout इस स्थिति में आपकी सहायता करेगा। $timeout फ़ंक्शन के अंदर ईवेंट को लपेटें।

मार्कअप

<body ng-app="myApp" ng-controller="testCtrl" ng-keydown="key($event);">
    <button id="viewQuestions" type="button" ng-click="isButtonClicked = !isButtonClicked; test();"> Test</button>
    Is Button Clicked {{isButtonClicked}}
</body>

कोड

$scope.$on('key', function (e, key) {
    if (key == 13) {
        if (ts.test.current && ts.test.userTestId) {
            $timeout(function(){
                angular.element(document.getElementById("viewQuestions")).trigger('click');
            })
        }               
    }
});

ng-click अंदर जो कुछ भी आप लिखते ng-click उसे मिलेगा।

कार्य करना बेला

मेरे पन्ने पर एक पृष्ठ पर एक आईडी = "दृश्य प्रश्न" वाला एक बटन है:

    <body ng-keydown="key($event);">

मेरा कोड इस तरह की प्रमुख हिट की जाँच कर रहा है:

    $scope.key = function ($event) {
        $scope.$broadcast('key', $event.keyCode)
    }

और नियंत्रक में:

 $scope.$on('key', function (e, key) {
        if (key == 13) {
            if (ts.test.current && ts.test.userTestId) {
                document.getElementById("viewQuestions").click();
            }               
        }
    });

जब मैं कोड चलाता हूं और एन्टर पर क्लिक करता हूं तो मुझे यह त्रुटि मिलती है:

 Error: [$rootScope:inprog] $apply already in progress
http://errors.angularjs.org/1.3.7/$rootScope/inprog?p0=%24apply
    at REGEX_STRING_REGEXP (http://localhost:2757/lib/angular/angular.js:63:12)
    at beginPhase (http://localhost:2757/lib/angular/angular.js:14735:15)
    at Scope.$get.Scope.$apply (http://localhost:2757/lib/angular/angular.js:14479:11)
    at HTMLButtonElement.<anonymous> (http://localhost:2757/lib/angular/angular.js:22945:23)
    at HTMLButtonElement.eventHandler (http://localhost:2757/lib/angular/angular.js:3009:21)
    at http://localhost:2757/app/tests/controllers/TestsController.js:24:62
    at Scope.$get.Scope.$broadcast (http://localhost:2757/lib/angular/angular.js:14700:28)
    at Scope.AppController.$scope.key (http://localhost:2757/app/appController.js:30:20)
    at $parseFunctionCall (http://localhost:2757/lib/angular/angular.js:12330:18)
    at ngEventDirectives.(anonymous function).compile.element.on.callback (http://localhost:2757/lib/angular/angular.js:22940:17)

कोई मुझे इस पर सलाह दे सकता है मैं बस एक बटन पर क्लिक करना अनुकरण करना चाहता हूं जब ENTER कुंजी दबाई जाती है। मैंने रूपों के साथ समाधान की कोशिश की थी लेकिन यह मेरी बल्कि जटिल जरूरतों को पूरा नहीं करता है





angular-digest