在JavaScript函数中转换Angular指令
Transform Angular Directive in Vanila JavaScript function
我的问题是如何将我的Angular指令转换为JavaScript函数。
由于我和我的雇主有保密协议,我不能分享我的任何代码,但我认为这个问题很容易理解。
谁能给我一些建议?这是一个简单的例子,我会尽量像初学者一样清楚。
这是一个指令:
app.directive('helloWorld', function() {
return {
restrict: 'AE',
replace: true,
template: '<p style="background-color:{{color}}">Hello World',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
elem.css('background-color', 'white');
scope.$apply(function() {
scope.color = "white";
});
});
elem.bind('mouseover', function() {
elem.css('cursor', 'pointer');
});
}
};
});
我想做的是这样的:
function directiveWraper(scope, elem, attrs){
app.directive('helloWorld', function() {
return {
restrict: 'AE',
replace: true,
template: '<p style="background-color:{{color}}">Hello World',
link: function(scope, elem, attrs) {
elem.bind('click', function() {
elem.css('background-color', 'white');
scope.$apply(function() {
scope.color = "white";
});
});
elem.bind('mouseover', function() {
elem.css('cursor', 'pointer');
});
}
};
});
}
所以我想在javascript函数中包装一个指令,并拉出该函数中的所有参数。
所以对我来说,看起来你正在寻找的是一个函数,它需要一个DOM元素,并应用更改id (DOM操作,风格或其他东西)。angular指令所做的,不过是把dom的改动封装到一个容器中。
如果你不想为你的代码使用angular.js,我想最合适的将是jQuery你想要实现的。实际上,这个指令使用的是jQuery的一个轻量级版本。
应该为您做的是将link函数中的所有内容取出,并将elem替换为像这样的jQuery对象:
var $elem = $(".myclass");
$elem.bind('click', function() {
$elem.css('background-color', 'white');
//do something else onclick
});
$elem.bind('mouseover', function() {
$elem.css('cursor', 'pointer');
});
你可能需要做更多的改变,但这应该会引导你走上正确的轨道。此外,您可能希望在文档加载后调用此代码,以确保您正在查找的元素位于DOM上。
$.ready(function(){
//..do stuff in here after the document.ready event fired
});
相关文章:
- 将JSON对象传递给angular指令
- Angular指令在alertify setContent内容中不起作用
- 在其他javascript框架模板中运行angular指令
- 如何动态禁用Angular指令
- 在 Angular 指令中,如何进行回调,其中函数名称位于父范围的变量中
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 不适用于动态数据的Angular指令来自$http
- 这段jquery代码在angular指令中不起作用
- Angular 指令似乎没有使用元素传入的选项执行
- 带有Angular指令的HTML;附加时无法工作
- 如何使用angular指令从html中获取数组
- 如何正确控制Angular指令的$dirty和$pure状态
- 在 Angular 指令中定义一个用于 ng-click 的函数
- HTML 标记在使用 Angular 指令时被视为纯文本
- 当 Angular 指令的名称真正重要时
- 如何将侦听器添加到 Angular 指令中
- 嵌套的Angular指令触发父对象上的作用域函数
- 在ui路由器中以Webpack块的形式懒惰地加载Angular指令
- 超链接;编译angular指令内的模板后无法工作
- 用angular指令构建嵌套树