javascript - AngularJS 指令 - 传递选项对象与单独属性的优缺点?

标签 javascript angularjs

假设我正在为散点图创建一个指令,该指令应该具有一整套可配置属性。 据我所知,我可以设置这些单独的范围属性:

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);

那么,我应该采用哪种方法,为什么?

最佳答案

如果您想覆盖一两个参数,多个属性可能是一个很好的解决方案。就我个人而言,我喜欢对象“模式”,因为它保留了所有内容,并且我可以从 Controller 更新模型,而无需触及 HTML。

也取决于您想要如何更新模型变量。您是否正在使用 Controller /作用域方法或通过 .attr() (或其他 dom 操作框架)进行更新?归根结底取决于您的需求,但我认为使用对象最适合维护。

关于javascript - AngularJS 指令 - 传递选项对象与单独属性的优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26710090/

相关文章:

javascript - 在历史 popstate 事件中获取 AngularJs $scope?

javascript - 用JS chop html段落的最后一个字符

javascript - AngularJs:给定出生日期时自动获取年龄

html - Internet Explorer 中的居中对齐偏移

javascript - JavaScript闭包如何工作?

javascript - 使用 gulp-angular-templatecache 将 HTML 合并到 template.js 中,出现 $injector Module Unavailable 错误

javascript - 使用 AngularJS 将指令附加到 DOM

javascript - 如何编辑 Skype 联系我按钮 CSS?

javascript - css/html/javascript Accordion 菜单 - 在父 "square"内显示子列表

javascript - 可以动态地、即时地编辑图像吗?