Javascript 按类查找角度元素的最佳方法是什么?
嘿,谢谢你检查我的问题。我试图按类查找角度元素,并将它们放入另一个函数的数组中Javascript 按类查找角度元素的最佳方法是什么?,javascript,jquery,css,html,angularjs,Javascript,Jquery,Css,Html,Angularjs,嘿,谢谢你检查我的问题。我试图按类查找角度元素,并将它们放入另一个函数的数组中 $scope.find = function () { var someVar = []; $scope.element.find('.selectedRow').each(function(){ someVar.push($(this).find('td').eq(0).text()) }) return rows; console.log(rows);
$scope.find = function () {
var someVar = [];
$scope.element.find('.selectedRow').each(function(){
someVar.push($(this).find('td').eq(0).text())
})
return rows;
console.log(rows);
};
你可以利用
angular.element(element);
对你来说呢
angular.element(document.querySelector('.selectedRow'))
元素可以作为类选择器的位置首先,我强烈建议阅读以下关于如何“思考”的答案:
对于angular,您需要考虑模型,而不是DOM。因此,您应该将一些
ng单击s添加到您的行中,以将它们添加到数组中(取消选择时可能会将它们从数组中删除)。然后,您的模型中已经有了您的数组,而不需要从DOM中进行任何选择。我建议使用(创建)一个指令来实现这一点。正如dnc253所述,从控制器中引用DOM并不是一种有效的角度开发方法。另一种方法是:
将表中的数据从控制器注入视图:
.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>
现在,您可以从控制器中跟踪所选行,因为每一行都具有selected属性。在控制器中使用DOM是一个带有角度的巨大红色标志。你到底想做什么?我有一个表,我可以在其中单击行来选择它们,我试图实现一个函数来根据选择查找行,并仅过滤所选行。
$scope.toggleRow = function (row) {
row.selected = !row.selected;
}