无法从jQuery调用角度ng-click

时间:2015-07-08 21:47:59

标签: javascript jquery angularjs jquery-plugins angularjs-scope

我试图从jQuery调用ng-click但是无法让它工作。有人可以告诉我如何正确地做到这一点吗?

HTML:

<a ng-click="changeData()">Testing</a>
<a ng-click="changeData()">Testing 2</a>
<a ng-click="changeData()">Testing 3</a>

jQuery的:

$(document).keydown(function(e){
    if (checkNav && checkNav()) return;
    if (e.keyCode == 37) {
        // left
        setCurrent(x,y-1);
        e.preventDefault();
    } else if (e.keyCode == 38) {
        // up
        setCurrent(x-1,y);
        e.preventDefault();
    } else if (e.keyCode == 39) {
        // right
        setCurrent(x,y+1);
        e.preventDefault();
    } else if (e.keyCode == 40) {
        // down
        setCurrent(x+1,y);
        e.preventDefault();
    } else if (e.keyCode == 13) {

        $('a[ng-click="changeData()"]')

    }
});

我希望它在点击输入时调用与ng-click相同的功能。如果我在点击回车时有hrefs的以下代码,它可以正常工作:

} else if (e.keyCode == 13) {
                window.location = current.attr('href');
                e.preventDefault();
            }

谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你的意思是你想要这样的东西。如果这是你的意图,请告诉我:

的index.html

<input ng-keyup="keyFn(event=$event)" ngclick="clickFn()">click</input>

controller.js

angular.module('myApp')
    .controller('myCtrl', function($scope) {

        $scope.keyFn = function(event){
          if (event.keyCode && event.keyCode === 13/*enter key*/){
              someFunction();
          }
        };
        $scope.clickFn = function(){
            someFunction();
        }
    });

function someFunction(){
    console.log("event fired");
    //functionality shared between click and `enter` keypress
}

答案 1 :(得分:0)

import json; responseJson = json.loads(response) responseJson['movies_search']['error']['errorMessage'] 只是获取元素。如果您想触发点击,则需要像{<1>}那样调用$('a[ng-click="changeData()"]')

.click()

但我更喜欢托马斯的答案,根本不使用jQuery,我不明白为什么你需要它。似乎完全没必要。