Angularjs 获取ui视图中元素的高度

Angularjs 获取ui视图中元素的高度,angularjs,Angularjs,我有一个可以有可变高度的状态(取决于内容)。我想将该高度设置为背景色的css属性 但是我很难获得正确的高度,因为代码在内容加载到状态之前触发 我有这个状态, $stateProvider .state('home.suggestions', { url: '', views: { "suggestions": { templateUrl: '../assets/angular-app/templates/_suggestions.html',

我有一个可以有可变高度的状态(取决于内容)。我想将该高度设置为背景色的css属性

但是我很难获得正确的高度,因为代码在内容加载到状态之前触发

我有这个状态,

$stateProvider
  .state('home.suggestions', {
    url: '',
    views: {
      "suggestions": {
        templateUrl: '../assets/angular-app/templates/_suggestions.html',
        controller: function(){
          showHeight = $('.suggestions-container-wrapper').outerHeight();
          console.log(showHeight)
        }
      },

    },
  })
但它总是返回175(加载
ng repeat
内容之前元素的高度)


在所有调用完成后,如何运行代码?

刚刚找到了一个简单的解决方案。但是在ng repeat元素后面有一个
ng init
,然后在触发时触发函数

控制员

$scope.setHeight = function (){
  $timeout(function(){
      showHeight = $('.suggestions-container-wrapper').outerHeight();
      console.log(showHeight)
    }, 0);

}
查看上的文档。您可以执行以下操作:

controller: function(){
    $scope.$on('$viewContentLoaded', function(){
        showHeight = $('.suggestions-container-wrapper').outerHeight();
        console.log(showHeight)
    });
}

也是一篇讨论它的文章。

我可能会为此创建一个指令,并将其放在模板的顶层
controller: function(){
    $scope.$on('$viewContentLoaded', function(){
        showHeight = $('.suggestions-container-wrapper').outerHeight();
        console.log(showHeight)
    });
}