如何在AngularJS中创建具有动态值的指令

如何在AngularJS中创建具有动态值的指令,angularjs,Angularjs,我有一个很小的指令,它模拟元素点击时的“keydown”事件。它工作得非常好,但是我想创建一个更通用的,可以直接从视图传递“keydown”值 你能帮我了解一下这个功能在angular中是如何工作的吗?有些功能仍然有点让人困惑:)提前谢谢 我的指示: app.directive('simulateKeydown', [function(){ return function(scope, element, attr){ var e = jQuery.Event("keydo

我有一个很小的指令,它模拟元素点击时的“keydown”事件。它工作得非常好,但是我想创建一个更通用的,可以直接从视图传递“keydown”值

你能帮我了解一下这个功能在angular中是如何工作的吗?有些功能仍然有点让人困惑:)提前谢谢

我的指示:

app.directive('simulateKeydown', [function(){
    return function(scope, element, attr){
        var e = jQuery.Event("keydown");
        e.which = 36;
        element.bind('click', function(){
            $(element).trigger(e);
        })

    }
}])
当前视图:

<div simulate-keydown></div>

所需视图:

<div simulate-keydown="36"></div>

attr参数(此处
返回函数(范围、元素、attr))
保存所有属性。所以简单地使用它

app.directive('simulateKeydown', [function(){
    return function(scope, element, attr){
        var e = jQuery.Event("keydown");
        e.which = parseInt(attr.simulateKeydown); // the value you gave it
        element.bind('click', function(){
            $(element).trigger(e);
        })
    }
}])
然后可以根据需要使用该指令

<div simulate-keydown="36"></div>   

attr参数(此处
返回函数(范围、元素、attr))
保存所有属性。所以简单地使用它

app.directive('simulateKeydown', [function(){
    return function(scope, element, attr){
        var e = jQuery.Event("keydown");
        e.which = parseInt(attr.simulateKeydown); // the value you gave it
        element.bind('click', function(){
            $(element).trigger(e);
        })
    }
}])
然后可以根据需要使用该指令

<div simulate-keydown="36"></div>   


var-app=angular.module(“myApp”,[]);
app.directive('simulateKeydown',[function(){
返回函数(范围、元素、属性){
var e=jQuery.Event(“keydown”);
e、 其中=attr.key;
元素绑定('单击',函数(){
$(元素)。触发器(e);
})
}
}])

var-app=angular.module(“myApp”,[]);
app.directive('simulateKeydown',[function(){
返回函数(范围、元素、属性){
var e=jQuery.Event(“keydown”);
e、 其中=attr.key;
元素绑定('单击',函数(){
$(元素)。触发器(e);
})
}
}])

在这种情况下,它将停止工作。虽然,当console.log(attr.simulateKeydown)返回我在视图中传递给指令的值时,事件没有触发是的,现在可以工作:)谢谢您的帮助,一切都清楚了!在这种情况下,它停止工作。虽然,当console.log(attr.simulateKeydown)返回我在视图中传递给指令的值时,事件没有触发是的,现在可以工作:)谢谢您的帮助,一切都清楚了!感谢您的回复,也非常有用!感谢您的回复,也非常有用!