Javascript angular.element()找不到DOM元素

Javascript angular.element()找不到DOM元素,javascript,angularjs,firebase,firebase-realtime-database,Javascript,Angularjs,Firebase,Firebase Realtime Database,我有一个从Firebase数据库动态填充的用户表: <table id="users"> <thead> ... </thead> <tbody> <tr ng-repeat="user in users"> <td data-user-id="{{user.$id}}">{{user.$id}}</td> </tr>

我有一个从Firebase数据库动态填充的用户表:

<table id="users">
    <thead>
       ...
    </thead>
    <tbody>
       <tr ng-repeat="user in users">
          <td data-user-id="{{user.$id}}">{{user.$id}}</td>
       </tr>
    </tbody>
</table>

loadUsers()
中,我试图找到一个包含特定用户ID的单元格。上面的log语句返回一个长度为0的数组。为什么会发生这种情况?当我在Chrome控制台中尝试语句1和2时,效果很好。

将您的循环放在
viewContentLoaded
事件中。它看起来像是异步的

$scope.$on('$viewContentLoaded', function () {
    for (var id in users) {
        var user = users[id];

        // Find cell with user ID
        var element = angular.element('#users tr td[data-user-id="' + user.id + '"]'); // 1
        console.log(element); // 2
    }
});

对我有效的方法是将
loadUsers()
转化为一个指令。它是在使用
ngRepeat
生成DOM元素后调用的

HTML:


显示您的DOM结构在项目中是否使用jQuery?尝试
angular.element().find(“#users trtd[data user id=“”+user.id+”)
您必须显示更多代码。它不能在代码和控制台中工作的一个可能原因是,当您执行这些行时,元素还没有出现在DOM中。项目中未使用jQuery。。。在哪里分配$scope.users?@user2181948哪里是
$scope.users
$scope.$on('$viewContentLoaded', function () {
    for (var id in users) {
        var user = users[id];

        // Find cell with user ID
        var element = angular.element('#users tr td[data-user-id="' + user.id + '"]'); // 1
        console.log(element); // 2
    }
});
   <tr ng-repeat="user in users" load-users>
var app = angular
    .module('app', ['firebase'])
    .directive('loadUsers', loadUsers);


function loadUsers($scope, DatabaseFactory) {
    return function(scope, element, attrs) {
        if (scope.$last) {
           ...
        }
    }
};