我需要在运行时通过 AngularJS 中的 Controller 设置 HTML 元素的宽度。我的 Controller 在我的指令中定义。我知道我需要在指令中设置第一个 ul
元素的宽度。目前,我有以下内容:
var list = $element.find('ul');
$element(list[0]).css('width', '300px'));
但是,当我尝试这样做时,我收到一条错误消息:
TypeError: object is not a function
我做错了什么?我如何在运行时在 AngularJS 中设置 HTML 元素的宽度?
谢谢!
最佳答案
你不需要 JQuery 来做你想做的事,AngularJS 有 jqlite。如 AngularJS Developer's Guide for directives 中所述:
element is the jqLite-wrapped element that this directive matches.
因此它应该能够执行 jQuery 能够执行的大部分功能,如 angular.element()
documentation 中所定义的那样.
文档未能定义的是,用于查找元素的 jqlite 版本返回一个 HTML 元素数组。因此,您必须使用 jqlite 功能对要在该数组内操作的每个元素使用 angular.element()
。所以代码一般应该是这样的:
var list = elem.find('ul');
angular.element(list[0]).css('width', '300px');
关于javascript - 在 AngularJS 中运行时设置 HTML 元素的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26260081/