嘿谢谢你查看我的问题。我试图按类找到角元素并将它们推入一个数组中以获得另一个函数。
$scope.find = function () {
var someVar = [];
$scope.element.find('.selectedRow').each(function(){
someVar.push($(this).find('td').eq(0).text())
})
return rows;
console.log(rows);
};
答案 0 :(得分:1)
首先,我强烈建议您阅读有关如何以角度“思考”的答案:https://stackoverflow.com/a/15012542/1014979
对于角度,你需要考虑模型,而不是DOM。因此,您应该在行中添加一些ng-click
,将它们添加到您的数组中(并且可能在取消选择时将它们从数组中删除)。然后,您已经在模型中使用了数组,而无需从DOM中进行任何选择。
答案 1 :(得分:0)
您可以使用
angular.element(element);
,在你的情况下
angular.element(document.querySelector('.selectedRow'))
其中element可以是您的类选择器
答案 2 :(得分:0)
我建议使用(创建)指令。
答案 3 :(得分:0)
正如dnc253所提到的,从控制器引用DOM并不是在Angular中开发的有效方法。另一种方法可以做到这一点:
将表格中的数据从控制器注入您的视图中:
.controller('controllerName', ['$scope', function($scope) {
$scope.rows = [
{ col1: 'foo', col2: 'bar', selected: false },
{ col1: 'baz', col2: 'foo', selected: false }
];
}]);
使用ng-repeat指令在视图脚本中渲染模型:
<table>
<tr ng-repeat="row in rows" ng-click="toggleRow(row)">
<td>{{ row.col1 }}</td>
<td>{{ row.col2 }}</td>
</tr>
</table>
在控制器中提供toggleRow
功能,以切换行上的所选属性:
$scope.toggleRow = function (row) {
row.selected = !row.selected;
}
现在您可以跟踪控制器中的选定行,因为每行都有选定的属性。