Angularjs指令在点击

时间:2015-12-12 14:50:13

标签: javascript jquery angularjs d3.js

我正在尝试为d3力图创建一个包装指令。 我正在为图形构建一个工具栏,如果你单击工具栏上的某些东西,它应该改变图形中的东西(隐藏/显示标签,删除/添加节点)

我想要的是工具栏元素将各自具有ng-click属性,该属性将引用具有其含义的函数,但这意味着我在控制器内部具有DOM操作代码。 所以我想有一个elem.on事件处理程序,但这意味着我的代码非常依赖于我的视图(代码需要知道使用正确的选择器等。)

我也喜欢尽可能减少使用jquery。使用jqlite对我来说没问题,但不确定我是否依赖于jquery。

你有什么方法可以做类似的事情?

谢谢, 哈伊姆

1 个答案:

答案 0 :(得分:0)

与视图交互的合适位置是链接函数aka compile.post。

在控制器函数返回后触发链接功能(填充$ scope对象)。当然,链接功能是DDO(指令定义对象)的一部分。

.directive('sampleDrv', function () {
  return {
     link: function (scope, element, attrs, controller) {

     }
  }
}

此外,我一直在处理我的angularjs应用中的d3js并推荐这种方法http://www.ng-newsletter.com/posts/d3-on-angular.html