javascript - 如何多次使用 Angular 分量?

标签 javascript html angularjs charts highcharts

我正在使用 Angular 组件将动态图表加载到我的小部件中:

这是我的组件的示例:

angular.module("generalApp").component("chartPie", {
template: "<div class=Pie></div>",
bindings: {
    data: "=",
},
controller: function () {
    $('.Pie').highcharts({
        title: {
            text: 'Pie point CSS'
        },

        xAxis: {
            categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
        },

        series: [{
            type: 'pie',
            allowPointSelect: true,
            keys: ['name', 'y', 'selected', 'sliced'],
            data: [
                ['Apples', 29.9, false],
                ['Pears', 71.5, false],
                ['Oranges', 106.4, false],
                ['Plums', 129.2, false],
                ['Bananas', 144.0, false],
                ['Peaches', 176.0, false],
                ['Prunes', 135.6, true, true],
                ['Avocados', 148.5, false]
            ],
            showInLegend: true
        }]
    })
}
});

这会在小部件上呈现饼图。这就是我的 json 对象的样子:

{  
     "Id":0,
     "description":"Test1",
     "datasource":"Data",
     "charttype":"Pie",
     "x":0,
     "y":0,
     "width":3,
     "height":2
},

一切进展顺利。但是当我想用饼图制作另一个小部件时,它不再渲染饼图。

具有两个小部件对象的数组:

[
    {  
        "Id":0,
        "description":"Test1",
        "datasource":"Data",
        "charttype":"Pie",
        "x":0,
        "y":0,
        "width":3,
        "height":2
    },
    {  
        "Id":0,
        "description":"Test2",
        "datasource":"Data",
        "charttype":"Pie",
        "x":3,
        "y":0,
        "width":3,
        "height":2
    }
]

在index.html

<div ng-switch-when="Pie">
   <chart-pie></chart-pie>
 </div>

小部件:

Render

如何多次使用该组件?

亲切的问候

最佳答案

$('.Pie') 选择器过于笼统,会选取整个文档中具有该类的每个元素。

$element 注入(inject) Controller 并仅在组件元素中搜索 .Pie:

angular.module("generalApp").component("chartPie", {
    template: "<div class=Pie></div>",
    bindings: {
        data: "=",
    },
    controller: function ($element) {
        $element.find('.Pie').highcharts({
            // ...
        })
    }
});

关于javascript - 如何多次使用 Angular 分量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48279841/

相关文章:

javascript - 使用 Angular4 直接更新到 innerHTML 时如何提高性能

javascript - JavaScript 数组与对象的对称差异

html - 是否可以将此文本保留在设置了绝对位置的 div 中?

javascript - 如何为 Highcharts 图例设置颜色属性中的对象值?

java - 如何在java selenium中xpath这个 "Policy"选项卡

javascript - 是否有可能在一定数量的滚动像素上出现动画?

javascript - 执行页面脚本,该脚本是在页面中的其他 JavaScript 之前从内容脚本插入到页面中的

jquery - 使用 jquery 将高度添加到带有 !important 在 css 中的 div

asp.net - 让 wmd-editor 不发布 html?

javascript - AngularJS:当变量变为指令时触发 Controller 函数