我在我的指令中使用以下代码,似乎点击无法跟踪我的$ location. $$路径非常好。我使用的这个插件也使用<li></li>
作为可点击的项目,其路径可能导致问题。所以我的问题是,如果有一种方法我可以滑出元素,只关注<a href="#myValue>
那个<li>
的孩子?
.directive('treeClick', function ($location) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
element.bind("mousedown", function () {
console.log($location.$$path);
})
}
}
})
<li class="list-group-item node-tree node-selected" data-nodeid="2" style="color:#000;background-color:#eaeaea;"><span class="indent"></span><span class="indent"></span><span class="icon glyphicon"></span><span class="icon node-icon"></span><a href="#myValue" style="color:inherit;">Example1</a></li>
答案 0 :(得分:1)
我在想你正在尝试做什么,你正在使用错误的事件。如果你尝试mouseup
而不是mousedown
怎么办?如果对网址的更新是异步的,你可能还需要$timeout
你的处理,但我认为不是这样的?
更多事情...... Angular会在名为$locationChangeSuccess
并且.. $$path
是一个内部属性,为什么不使用记录的$location.path()
答案 1 :(得分:0)
<div class="images-block">
<div class="image-sq">
<p>⇕ Expand</p>
</div><div class="image-sq">
<p>⇕ Expand</p>
</div><div class="image-sq">
<p>⇕ Expand</p>
</div><div class="image-sq">
<p>⇕ Expand</p>
</div><div class="image-sq">
<p>⇕ Expand</p>
</div><div class="image-sq">
<p>⇕ Expand </p>
</div>
</div>
给了我什么元素:“A”表示列表项的锚“LI”。然后我使用event.target.nodeName
提取“A”的值,这样我就不会在console.log()中获取主机名