任意のデータを宣言的に 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..