根据UL中li元素的数量设置UL的宽度AngularJS

根据UL中li元素的数量设置UL的宽度AngularJS,angularjs,ng-style,Angularjs,Ng Style,我想根据UL中LI元素的数量来更新UL的宽度,目前我正在创建一个带有$timeout的自定义指令,这实际上是延迟页面加载内容,我还通过jQuery和AngularJS的混合实现了这一点 通过观察控制器中的变量并将其传递给ng样式,是否有更好的方法以纯角度方式执行此操作?我的页面包含多个具有可变LIs数的ULs。请建议 app.directive('setUlLength', function ($timeout) { return { restrict: 'A',

我想根据UL中LI元素的数量来更新UL的宽度,目前我正在创建一个带有$timeout的自定义指令,这实际上是延迟页面加载内容,我还通过jQuery和AngularJS的混合实现了这一点

通过观察控制器中的变量并将其传递给ng样式,是否有更好的方法以纯角度方式执行此操作?我的页面包含多个具有可变LIs数的ULs。请建议

app.directive('setUlLength', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            $timeout(function () {
                var totli = $(element).find('ul').children('li').length;
                var liwid = $(element).find(".prod-gall ul li:first").outerWidth(true);
                var setUlWidth = totli * liwid;
                $(element).find('.prod-gall ul').css({ 'width': setUlWidth + 'px' });
            });
        }
    };
});

在CSS中这样做不是最好的主意吗?你知道任何参考资料吗?我怀疑我们是否可以计算css中“li”元素的宽度?这是一个建议:)。很可能您的
  • 都在同一条水平线上,并且您只是想调整容器的大小。在这种情况下,CSS就足够了。但是当然,CSS中的子元素的宽度之和是不可能计算的。只要所有my
  • 的宽度之和在my
      的定义宽度内,它们就保持在同一水平线上,当
    • 的宽度之和超过
        的定义宽度时,它们会缠绕到下一行,这就是我想通过在加载所有
      • 后设置
          宽度来解决的问题。听起来您没有使用
          最小宽度