Html AngularJS在指令中将css设置为标记(引导粘贴页脚)

Html AngularJS在指令中将css设置为标记(引导粘贴页脚),html,css,angularjs,angular-ui-bootstrap,Html,Css,Angularjs,Angular Ui Bootstrap,我正在开发我的第一个AngularJS应用程序,使用Bootstrap作为响应框架。该应用程序需要一个新版本。通常我使用jQuery计算页脚的outerHeight,并将body标记的值设置为css中的padding bottom <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta charset="utf-8"> <meta name=view

我正在开发我的第一个AngularJS应用程序,使用Bootstrap作为响应框架。该应用程序需要一个新版本。通常我使用jQuery计算页脚的outerHeight,并将body标记的值设置为css中的padding bottom

  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8">
    <meta name=viewport content="width=device-width,initial-scale=1, maximum-scale=1, user-scalable=0">
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/css/style.min.css" rel="stylesheet" type="text/css" media="all" />
  </head>

  <body ng-app="ngApp">
    <header>
    </header>
    <main>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </main>
    <footer footer-height>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </footer>
    <!-- Scripts  -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js"></script>
    <!-- App -->
    <script src="app/app.js" type="text/javascript"></script>
  </body>
</html>
我不想使用jQuery,所以我一直在用纯AngularJS来处理这个问题

  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8">
    <meta name=viewport content="width=device-width,initial-scale=1, maximum-scale=1, user-scalable=0">
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/css/style.min.css" rel="stylesheet" type="text/css" media="all" />
  </head>

  <body ng-app="ngApp">
    <header>
    </header>
    <main>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </main>
    <footer footer-height>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </footer>
    <!-- Scripts  -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js"></script>
    <!-- App -->
    <script src="app/app.js" type="text/javascript"></script>
  </body>
</html>
HTML

  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8">
    <meta name=viewport content="width=device-width,initial-scale=1, maximum-scale=1, user-scalable=0">
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/css/style.min.css" rel="stylesheet" type="text/css" media="all" />
  </head>

  <body ng-app="ngApp">
    <header>
    </header>
    <main>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </main>
    <footer footer-height>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </footer>
    <!-- Scripts  -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js"></script>
    <!-- App -->
    <script src="app/app.js" type="text/javascript"></script>
  </body>
</html>

页脚的高度计算正确,如控制台中所示,但该值未设置为body标记

我认为您需要创建自己的指令,您可以在div上

  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta charset="utf-8">
    <meta name=viewport content="width=device-width,initial-scale=1, maximum-scale=1, user-scalable=0">
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <link href="assets/css/style.min.css" rel="stylesheet" type="text/css" media="all" />
  </head>

  <body ng-app="ngApp">
    <header>
    </header>
    <main>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </main>
    <footer footer-height>
      <div class="container">
        <div class="content-wrapper">
          <div class="row">
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
            <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6">
              <!--  -->
            </div>
          </div>
        </div>
      </div>
    </footer>
    <!-- Scripts  -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap.min.js"></script>
    <!-- App -->
    <script src="app/app.js" type="text/javascript"></script>
  </body>
</html>
app.directive('outerHeight', function(){
  return{
    restrict:'A',
    link: function(scope, element){
       return angular.element(element).prop('offsetHeight');
    }
  };
});

<div  outer-height></div>
app.directive('outerHeight',function(){
返回{
限制:'A',
链接:功能(范围、元素){
返回angular.element(element.prop('offsetHeight');
}
};
});

您只能通过css来完成。是的,请看示例我知道,但示例使用的是静态高度。我想使用可变页脚高度。我还想更多地了解框架…在
elBody.css
行之后,添加
$timeout(function(){scope.$digest();})
并且您需要注入
$timeout
。谢谢您,但是这到底是如何将值应用到css的呢?您可以使用angular.element在相同的指令中执行此操作您还可以更新css!示例:angular.element(document).find('head').prepend('youstyle');对于文档:也许我在jQuery中考虑得太多了,但是将变量设置为paddingBottom不起作用:var footerHeight=element[0];angular.element(document.querySelector(“body”))[0]。style.paddingBottom=页脚高度;使用类似“100px”的东西确实有效。有人知道为什么吗?