Javascript 角度控制器中的DOM操作
我正在访问控制器函数中的dom元素。由于我的控制器在呈现整个dom之前运行,所以像Javascript 角度控制器中的DOM操作,javascript,jquery,angularjs,dom,Javascript,Jquery,Angularjs,Dom,我正在访问控制器函数中的dom元素。由于我的控制器在呈现整个dom之前运行,所以像$(“.memos.inner”)之类的元素不会注册。所以我使用$(window).load,这非常有效 我的问题:在使用dom元素的angular中运行函数最合适的方法是什么?我知道在Angular中使用jQuery被人看不起。那么,做这件事的方法是什么呢$(“.memos.inner”)是已在我的视图中定义的元素 app.controller('useSpreadsheetData', function(){
$(“.memos.inner”)
之类的元素不会注册。所以我使用$(window).load,这非常有效
我的问题:在使用dom元素的angular中运行函数最合适的方法是什么?我知道在Angular中使用jQuery被人看不起。那么,做这件事的方法是什么呢<代码>$(“.memos.inner”)是已在我的视图中定义的元素
app.controller('useSpreadsheetData', function(){
$(window).load(function() {
var slideIndex = 0;
var slideCount = $(".memos .inner").children().length;
var slideWidth = 100/slideCount;
$(".memos .inner").css({width:slideCount * 100 + '%'});
var holderWidth = slideCount*100;
var increment = holderWidth/slideCount;
//set the left position for each slide
$(".memos .inner").find(".section").each(function(slide) {
var left_pos = (slideWidth * slide) + '%';
$(this).css({"left":left_pos});
$(this).css({"width": slideWidth + '%'});
});
});
});
很明显,你在“如何做”这本书的第1章第1页。阅读《angularIt》中的
ngClass
、ngStyle
和其他一些基本功能,具体取决于您所使用的版本。您希望使用-v1或-v2。您应该注意,在v1angular.element
中,元素是jQuery lite包装器的别名,因此可以使用angular.element('selector')[0]
@AndreiGheorghiu访问DOM元素,谢谢angular.element('.memos.inner')[0])
似乎只有在我也使用window时才起作用。是否有其他更适合角度的解决方案?使用ngStyle或ngClass?不,这些只是对$scope
属性的绑定,这些属性将得到评估,以便输出样式
属性或类。我会在回答中解释的。无法将其放在评论中:)@AndreiGheorghiu谢谢。我正在寻找一个不需要timeout或window.load就可以在angular中更改dom元素的答案。