假设我正在为散点图创建一个指令,该散点图应具有一整套可配置属性。 据我所知,我可以设置这些个别范围属性:
directive('scatterChart', ['$http', function($http){
scope: {
data: "=?",
selected : "=?",
indicatorX : "=?",
indicatorY : "=?",
indicatorSize : "=?"
}
或传递带有选项的对象:
directive('scatterChart', ['$http', function($http){
scope: {
model: "=?",
}
在后一种情况下,我不必返回并调整我的标记,这就足够了:
<div class="scatter-chart" model="scatter.options">
在我的指令中,观察对象以触发重新渲染就足够了:
scope.$watch('model', function(newVal, oldVal) {
render();
}, true);
那么,我应采用哪种方法?为什么?
答案 0 :(得分:1)
如果要覆盖一个或两个参数,多个属性可能是一个很好的解决方案。我个人喜欢这个对象&#34; pattern&#34;因为它保留了所有内容,我可以从控制器更新模型而无需触及我的HTML。
取决于您希望如何更新模型变量。您是通过控制器/范围方法还是通过.attr()(或其他dom操作框架)进行更新?归结为你的需求,但我认为使用一个物体最适合于提升。