javascript - 在指令内附加 html 和范围值

标签 javascript angularjs angularjs-directive

我正在尝试制作一个饼图指令,并且使用 highcharts,但我还想添加另一行文本,例如“60%”左右。到目前为止我尝试过这个

app.directive('pieGraph', function($compile) {
  return {
    restrict: 'C',
    scope: {
      value: '@',
      color: '@'
    },
    link: function(scope, elem) {
      elem.highcharts({
        chart: {
          type: 'pie',
          backgroundColor: null
        },
        title: {
          text: null
        },
        yAxis: {
          title: {
            text: 'Total percent market share'
          }
        },
        plotOptions: {
          pie: {
            shadow: true
          }
        },
        legend: {
          enabled: false
        },
        credits: {
          enabled: false
        },
        exporting: {
          enabled: false
        },
        tooltip: {
          enabled: false
        },
        series: [{
          name: '',
          data: [
            {
              name: 'a',
              y: parseInt(scope.value, 10),
              color: scope.color
            },
            {
              name: 'b',
              y: (100 - parseInt(scope.value, 10)),
              color: '#ffffff'
            }
          ],
          size: '100%',
          innerSize: '90%',
          dataLabels: {
            enabled: false
          }
        }]
      });

      var graph = angular.element('<span class="pie-graph-value">{{scope.value}}<sup>%</sup></span>');
      $compile(graph)(scope);
      elem.append(graph);
    }
  };
});

但这个问题是我应用的最后一个,仅表示%而不是值和百分比符号。我最后的编译有什么问题吗?

预先感谢您,丹尼尔!

最佳答案

使用{{value}}或将您的元素写为 '<span class="pie-graph-value">' + scope.value + '<sup>%</sup></span>' (请注意,后者稍后不会更新,因为该值仅在附加元素时计算一次)。 该元素将被渲染,因此对 scope 的引用是隐式的。

关于javascript - 在指令内附加 html 和范围值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26162826/

相关文章:

javascript - 使用 v-model 改变 prop 的属性是不好的做法吗?

javascript - $.post函数,返回为空

javascript - 构建一个类以创建具有可变键的对象

javascript - 如何避免 AngularJs 的屏幕闪烁?

angularjs - 在 Angular 指令中使用第三方库

asp.net - 有没有办法在不破坏 ASP.Net 回发的情况下修改查询字符串?

c# - AngularJS 与 Web 服务交互最佳实践

javascript - 将innerText传递给Angularjs Controller

angularjs - http : multiple response. WriteHeader 调用

javascript - 检查 subview 是否重新加载; AngularJS,UI 路由器