2013-10-08 36 views
0

我想用Angularjs构建一个可重用的SVG图表,我有一些与指令控制器相关的问题。Angularjs结构可重用的数据可视化?

在我想能够有标记像这样呈现与影响的内部状态,因此数据可视化形式的元素的曲线图的第一实例:

<scatterChart></scatterChart> 

=>

<div class="scatterChart"> 
<div> [Form elements] </div> 
<svg> 
    [Data visualization] 
</svg> 
</div> 

问题1:控制器,指令,模块
是否有意义建造这与单独的控制器单一的指令?或者你是否将控制器嵌入到指令中,或者创建模块?

问题2:型号/国SVG渲染
假设图表控制器具有一个内部状态是这样的:

scope.model = { 
    xAxis : "xyz", 
    yAxis : "abc" 
} 

模型的变化应该引起图表的重新描绘。 什么是DRY /正确的方式共享控制器和指令之间的所有图表用户控制属性? (同时该指令应该能有一定的依赖性/私有属性。)

问题3:API
我怎么会传递一个初始状态的图表?属性?如果它是一个20参数状态?

<scatterChart xAxis="abc"></scatterChart> 

回答

0

回答1

嵌入控制器的指令,除非你想重用在其他指令相同的控制器。

答案2

您可以创建一个服务来存储它们的所有图表之间共享用户控制的属性。

答案3

当有许多参数,创建服务来存储数据,并将它注入到你的指令和控制将是一个不错的主意。

总体思路是通过创建服务来将数据从控制器和指令中分离出来。