我正在尝试为d3力图创建一个包装指令。 我正在为图形构建一个工具栏,如果你单击工具栏上的某些东西,它应该改变图形中的东西(隐藏/显示标签,删除/添加节点)
我想要的是工具栏元素将各自具有ng-click属性,该属性将引用具有其含义的函数,但这意味着我在控制器内部具有DOM操作代码。 所以我想有一个elem.on事件处理程序,但这意味着我的代码非常依赖于我的视图(代码需要知道使用正确的选择器等。)
我也喜欢尽可能减少使用jquery。使用jqlite对我来说没问题,但不确定我是否依赖于jquery。
你有什么方法可以做类似的事情?
谢谢, 哈伊姆
答案 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