首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google图表的动态样式

google图表的动态样式
EN

Stack Overflow用户
提问于 2015-10-14 05:15:47
回答 4查看 143关注 0票数 1

我试图使用输入字段中的值动态更新google图表指令的宽度和高度。宽度和高度没有更新。

柱塞

代码语言:javascript
复制
$scope.height = "300"
$scope.width = "300"
$scope.cssStyle = "height:" + $scope.height+ "px; height:" + $scope.width + "px";
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-14 05:29:55

使用chart.options更新谷歌图表属性,如titlewidthheight等.

通过改变chart.options div**.**的值不需要改变的宽度和宽度

使用ng-change更新chat.options的值

通过添加input元素更新ng-change元素

代码语言:javascript
复制
<input type="text" value="300px" ng-change="change()" ng-model="width"/>
<input type="text" value="300px" ng-change="change()" ng-model="height"/>

将下面的change()函数添加到控制器

代码语言:javascript
复制
$scope.change = function() {
   $scope.chart.options = {
      height: $scope.width,
      width: $scope.height,
  };
}

检查更新的普鲁克尔

票数 2
EN

Stack Overflow用户

发布于 2015-10-14 05:21:27

错在第三行?

代码语言:javascript
复制
$scope.cssStyle = "height:" + $scope.height+ "px; height:" + $scope.width + "px";

成为

代码语言:javascript
复制
$scope.cssStyle = "height:" + $scope.height+ "px; width:" + $scope.width + "px";
票数 0
EN

Stack Overflow用户

发布于 2015-10-14 05:29:19

在样式声明中有一个错误:

代码语言:javascript
复制
//"height:" + $scope.height+ "px; height:" + $scope.width + "px";
  "height:" + $scope.height+ "px; width:" + $scope.width + "px";

$scope.cssStyle不会随着$scope.height$scope.width的变化而不断更新。要解决这个问题,可以将$scope.cssStyle转换为返回计算的函数。

代码语言:javascript
复制
<div google-chart chart="chart" style="{{cssStyle()}}"/>
代码语言:javascript
复制
$scope.cssStyle = function() {
  return "height:" + $scope.height+ "px; width:" + $scope.width + "px";
};

这样,cssStyle就会按您的要求进行更新,但是google-chart指令似乎没有使用新的参数进行更新。您可以通过从DOM中删除它并重新添加它来破解它。

代码语言:javascript
复制
<div ng-if="on" google-chart chart="chart" style="{{cssStyle}}"/>
代码语言:javascript
复制
$scope.$watch(function() {
  // watch this for changes
  return "height:" + $scope.height+ "px; width:" + $scope.width + "px";
}, function(style) {
  // there is a new style
  $scope.on = false; // remove chart
  $timeout(function() {
    // trigger another digest cycle to add chart with new style
    $scope.cssStyle = style;
    $scope.on = true;
  });
});

点击这里进行现场演示。

归功于Sarjan的回答--他发现更新google-chart维度的最佳方法是使用chart对象的options属性。该指令监视该对象并响应更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33117096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档