如何使用AngularJS动态更新.less文件中的变量

时间:2015-01-29 06:40:25

标签: less

我对AngularJS非常陌生。我想动态更新.less文件变量。但是没有得到如何使用AngularJS访问这个.less文件。

我的代码:

style.less

@bg-color: #484848;    
.header{ 
     background: @bg-color;
 }

我想将style.less文件中的@bg-color: #484848;更新为用户输入的值。如何使用AngularJS获得此功能。

1 个答案:

答案 0 :(得分:1)

你应该run Less in browser这样做。如果您在HTML中加载less.js,则全局less对象可用,因此您可以在angularJS代码中使用less.modifyVars() less.refreshStyles()

<!doctype html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Example - example-example78-production</title>

<link rel="stylesheet/less" type="text/css" href="color.less" />
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.1/angular.min.js"></script>

<script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.3.1/less.min.js"></script>

</head>
<body ng-app="submitExample">
  <script>
  angular.module('submitExample', [])
    .controller('ExampleController', ['$scope', function($scope) {
      $scope.list = [];
      $scope.text = 'orange';
      $scope.submit = function() {
        if ($scope.text) {
        less.modifyVars({ color : $scope.text });
        }
      };
    }]);
</script>
<h1>Colored text</h1>
<form ng-submit="submit()" ng-controller="ExampleController">
  Enter text and hit enter:
  <input type="text" ng-model="text" name="text" />
  <input type="submit" id="submit" value="Submit" />
</form>
</body>
</html>

请参阅: http://plnkr.co/5b1HTkneFXLMGVvXEG8j http://plnkr.co/edit/Z9tRY3Lol31PMnPUfxQi