将属性动态应用于指令中ngRepeat中的DOM元素
Dynamically Apply Attributes to DOM elements in ngRepeat in Directive
我正在创建angular中的dropdown-menu
指令,并且有一个想法。
我是否可以将extend
的attributes
的"列表"nr-repeat
中的DOM元素?
<li ng-repeat="item in menuItems" ng-init="extend((current_element).attributes, item.attributes)" />
我唯一的问题是我不知道如何获得上面所说的current_element
将current_element
传递给一个函数可能会更好:
<li ng-repeat="item in menuItems" ng-init="attributeExtend(current_element, item)" />
为了更具描述性,假设我有一个数组:
var menuItems = [
{
label: "One"
attributes: {
style: "background-color: blue"
}
},
{
label: "Two"
attributes: {
style: "background-color: red"
}
},
{
label: "Three"
attributes: {
style: "background-color: green"
}
}
];
我正在将其用于我的CCD_ 7。
现在,一旦我进入ng-init
:调用的函数
<!--HTML-->
<li class="upper-li" ng-repeat="item in menuItems" ng-init="extend(current_element, item, $index)" />
<!--SCRIPT-->
scope.extend = function(elem, item, $index)
{
/*
elem should be equal to:
$element.find('li.upper-li')[0].children[$index]
..which I've discovered I can use as a work around,
but I am still looking for my answer...
*/
for(var key in item.attributes)
{
elem.setAttribute(key, item.attributes[key]);
}
}
我只是想要一个更好的方法。谢谢
DOM元素的extend
属性的可能且简单的方法是动态创建包含指令内项目的下拉列表。
.directive("dropdown", function() {
return function(scope, element, attrs) {
var data = scope[attrs["dropdown"]];
if (angular.isArray(data)) {
var listElem = angular.element("<select>");
element.append(listElem);
for (var i = 0; i < data.length; i++) {
var option = angular.element('<option>');
for(var key in data[i].attributes)
{
option.attr(key, data[i].attributes[key])
}
listElem.append(option.text(data[i].label));
}
}
}
});
Plunkerhttp://plnkr.co/edit/pj8QedIpbyUZVYyopQ5R
相关文章:
- 使用ngRepeat中的Angular动态更改元素颜色
- ngRepeat中的动态ngModel对象属性
- 如果模型开始为空,如何处理ngRepeat模型中的新项
- 我可以按索引而不是名称引用ngRepeat中的项目吗
- 如何在嵌套的ngRepeat中对第二个ngRepeat应用过滤器
- 如何从控制器获取表示 ngRepeat 中元素的 HTML 节点的参数
- 将 http GET 响应与 ngRepeat 中的隔离作用域绑定
- AngularJS中ngRepeat集合中的延迟加载项
- AngularJs - ngRepeat 删除视图中的特定行
- ngRepeat中的自定义$index名称
- AngularJS-关闭tile并从ngRepeat指令AngularJS中的模型加载新视图
- orderBy不对以下ngRepeat表中的项目进行排序
- ngRepeat中的AngularJS绑定问题(折叠和展开Caret)
- 如何在不使用ngAnimate的情况下从ngrepeat中删除元素时具有淡出效果
- 对ngrepeat中的行进行分组
- 其中是在ngRepeat指令的源中定义的hashKey变量
- Angularjs-我们如何观察ngRepeat中的动态元素,以及动态ng模型名称和ANY更改时的过滤元素值
- ngrepeat中的Angular JS ngclick不起作用
- ngRepeat中的性能问题
- 将属性动态应用于指令中ngRepeat中的DOM元素