如何以声明方式将任意数据附加到 html 元素并检索它。
请看代码。http://plnkr.co/edit/sePv7Y?p=preview
Angular 有 jQuery data()支持。
所以,我想将数据附加到li
模板中的每个元素(比如 _data = node ),然后使用
var li = elm[0]....
console.log('li-', li.data('_data'))
li - {id:1}
代码:
'use strict';
var app = angular.module('Directives', []);
app.controller('MainCtrl', function ($scope) {
$scope.data = [
{id:1}, {id:2}, {id:3}
];
});
app.directive('test', function ($timeout) {
return {
template: '<li class="ch" ng-repeat="node in data">' +
'<span class="span2">' + 'id - {{node.id}}' + '</span>' +
'</li>',
restrict: 'A',
link: function (scope, elm, attrs) {
console.log(elm[0].children);
}
};
});
编辑:
用我喜欢设置数据的方式更新了代码。
template: '<li class="ch" ng-repeat="node in data" data-node="node">' +
现在无法正确选择 li 元素以查看它是否正在尝试,
elm[0].children[0].data()
elm.children[0].data()
etc..