Javascript 如何以编程方式计算AngularJS中HTML元素(指令)的属性名?

Javascript 如何以编程方式计算AngularJS中HTML元素(指令)的属性名?,javascript,angularjs,Javascript,Angularjs,我在AngularJS中定义了这些属性受限指令: <div data-pie-chart data="..."></div> <div data-line-chart data="..."></div> <div data-column-chart data="..."></div> 我想使用ng repeat(或类似)生成以下代码: <div data-pie-chart data="[1,1,1,1,1]">

我在AngularJS中定义了这些属性受限指令:

<div data-pie-chart data="..."></div>
<div data-line-chart data="..."></div>
<div data-column-chart data="..."></div>
我想使用ng repeat(或类似)生成以下代码:

<div data-pie-chart data="[1,1,1,1,1]"></div>
<div data-pie-chart data="[2,2,2,2,2]"></div>
<div data-pie-chart data="[3,3,3,3,3]"></div>
<div data-column-chart data="[4,4,4,4,4]"></div>
<div data-column-chart data="[5,5,5,5,5]"></div>

我希望有一个优雅的“angularish”代码,能够做到这一点,理想情况下不需要使用“ng开关”或“ng如果”,因为图表列表在开始时不受限制,也不知道(可以随时添加新类型的图表)


我能算出心房肌的名字吗?这样我就不需要硬编码所有的代码了?

我使用外部指令和内部模板做了类似的事情。外部指令负责在已知类型后编译内部图表指令

包装器指令

.directive( 'chartWrapper', [ '$compile', function($compile){
    return {
        scope: { data: '=', type: '=' },
        link: function($scope, elem, attrs){
            var dom = '<div ' + $scope.type + ' data="' + $scope.data + '"/>'
            var el = angular.element(dom)
            $compile(el)($scope)
            elem.append(el)

        }
    }
}])
指令('chartWrapper',['$compile',函数($compile){ 返回{ 作用域:{data:'=',类型:'='}, 链接:函数($scope、elem、attrs){ var dom='' var el=angular.element(dom) $compile(el)($scope) 元素附加(el) } } }])
我没有测试它,因为它与我自己的案例有点不同,但应该让您开始。

我使用外部指令和内部模板做了类似的事情。外部指令负责在已知类型后编译内部图表指令

包装器指令

.directive( 'chartWrapper', [ '$compile', function($compile){
    return {
        scope: { data: '=', type: '=' },
        link: function($scope, elem, attrs){
            var dom = '<div ' + $scope.type + ' data="' + $scope.data + '"/>'
            var el = angular.element(dom)
            $compile(el)($scope)
            elem.append(el)

        }
    }
}])
指令('chartWrapper',['$compile',函数($compile){ 返回{ 作用域:{data:'=',类型:'='}, 链接:函数($scope、elem、attrs){ var dom='' var el=angular.element(dom) $compile(el)($scope) 元素附加(el) } } }])
我没有测试过这个,因为它与我自己的案例有点不同,但应该让你开始。

它就像一个符咒一样工作,就像它一样!非常感谢你!它就像一个符咒一样,一模一样!非常感谢你!