我是AngularJs的新手,我使用Angular Ivh_treeview组件来显示JSON数据的嵌套树。树正确加载。现在我想
获取标签上的节点ID单击。因此,对于试验,我试图制作一个警报框,以便我可以检查函数调用是否有效。 Ivh-Treeviewe只有复选框功能。因此尝试添加自定义模板
nodeTpl: [
'<div>',
'<span ivh-treeview-toggle>',
'<span ivh-treeview-twistie></span>',
'</span>',
'<span href="#here" class="ivh-treeview-node-label" ng-click="test()">',
'{{trvw.label(node)}}',
'</span>',
'<div ivh-treeview-children></div>',
'</div>'
].join('\n')
并在控制器上
this.test = function() {
alert("hello");
}
现在不会调用click事件。有人可以解决这个问题。还尝试用$ scope.test定义来做它没有用。
答案 0 :(得分:0)
您的问题在于ivh-treeview(v1)不会使您的转置范围对您的节点模板可用。从本质上讲,这意味着模板无法访问树外范围内定义的内容。一切都不会丢失!你有几个选择:
在一个整洁的指令中点击点击逻辑。例如:
...
'<span href="#here" class="ivh-treeview-node-label" do-fancy-things-on-click>',
...
此处,do-fancy-things-on-click
是您已定义的指令,用于侦听点击事件,然后检查node
上的$scope
并执行某些操作。您可以更新附加元素的显示,广播事件,与服务交互等等。
请注意,v2还没有完全掉线的原因是因为我们没有完成重大改变:)。我不会期待任何过于疯狂的事情,但如果第一个选项适合你,它肯定会继续发挥作用。