<分区>
我对 Angular JS 比较陌生,而且我已经使用 jQuery 很长时间了。这就是为什么我一直很难将我内部的 jQuery 转换为 Angular。 :D
我想知道我们如何以 Angular 执行 DOM 查询。 基本上,我面临着必须做这样的事情的情况
$(".myClass").each(function(){
$(this).doSomething();
})
任何人都可以建议我一个 Angular 程序员如何做这样的事情。
谢谢
<分区>
我对 Angular JS 比较陌生,而且我已经使用 jQuery 很长时间了。这就是为什么我一直很难将我内部的 jQuery 转换为 Angular。 :D
我想知道我们如何以 Angular 执行 DOM 查询。 基本上,我面临着必须做这样的事情的情况
$(".myClass").each(function(){
$(this).doSomething();
})
任何人都可以建议我一个 Angular 程序员如何做这样的事情。
谢谢
最佳答案
angularjs 中的 DOM 操作不应该在 Controller 、服务等中......但它应该在唯一的一个地方 directives......
如果你想操作 DOM,你应该使用指令并在其中进行操作......
这里有一些关于 angularjs 中的 DOM 操作的好文章...
Best Practice - Dom Manipulations
DOM Manipulation in AngularJS — Without jQuery
现在让我们尝试创建一个您想要的指令。看起来你想通过他们的类选择它们来操纵元素。好的,没问题,所以我们需要创建一个指令,其中 restrict:'C'
表示 CLASS...
这是我们的指令声明...(显示所有内容的详细版本)
app.directive('myClass',function(){
// Runs during compile
return {
// name: '',
// priority: 1,
// terminal: true,
// scope: {}, // {} = isolate, true = child, false/undefined = no change
// controller: function($scope, $element, $attrs, $transclude) {},
// require: 'ngModel', // Array = multiple requires, ? = optional, ^ = check parent elements
restrict: 'C', // E = Element, A = Attribute, C = Class, M = Comment
// template: '',
// templateUrl: '',
// replace: true,
// transclude: true,
// compile: function(tElement, tAttrs, function transclude(function(scope, cloneLinkingFn){ return function linking(scope, elm, attrs){}})),
link: function($scope, iElm, iAttrs, controller) {
console.log('Here is your element', iElm);
// DO SOMETHING
}
};
});
这里是 PLUNKER ...
关于javascript - Angular JS 中的 DOM 查询; $ (".myclass").each() 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155171/
相关文章:
angularjs - : [$injector:unpr] Unknown provider in angularjs can't inject factory into controller
javascript - Angular Http put 方法在传递数据时出错(服务器期望表单 param )
javascript - 带变量的跨浏览器 CSS3 转换 jQuery 函数
javascript - js 在 Div 中查找类 + 切换 CSS/隐藏一个显示其他
javascript - window.location 麻烦的 JQuery 代码
javascript - 获取 Spotify 用户当前播放的轨道名称 [Web API]