以角度获取元素的绑定值

时间:2015-04-05 07:06:00

标签: javascript angularjs

说我在ng-repeat条款中有这个div:

<div ng-repeat="item in list" class="myDiv" ng-click="doStuff(item)">
    {{item.title}}
</div>

它基于这个模型:

$scope.list = [
    { 'title': 'Item 1', 'someData': 'lalala' },
    { 'title': 'Item 2', 'someData': '666' },
    { 'title': 'Item 3', 'someData': 'qwerty' }
  ];

然后我最终得到3个重复的div 现在我有一个分析页面的外部脚本,我想提取元素的数据 例如,如果我选择第一个div var div1 = $('div.myDiv:first'),我可以从中获取属性ng-clickng-repeat。我也可以使用angular.element(div1).data('$binding')来获取绑定{{item.title}} 但我真正想要的是这个特殊div的单个项目数据:即我想写一个函数getItemData(element),它将获得div1并返回{ 'title': 'Item 1', 'someData': 'lalala' }

如何做到这一点?
请注意,我需要一个解决方案,无论是使用转发器绑定还是使用常规绑定都可以使用。我基本上需要知道绑定到每个元素的实际数据。

1 个答案:

答案 0 :(得分:9)

您可以使用angular.element.scope方法访问元素数据对象:

var div1 = $('div.myDiv:first');
var dataItem = angular.element(div1).scope().item;

演示: http://plnkr.co/edit/MzQRjdgqIpbe9LGrwMDZ?p=preview