当用户执行某项操作时,我会在符合条件的字段的文本中插入一个链接:
var newElement = document.createElement('span');
newElement.innerHTML = "<a id='123' class='cite' href='' data-ng-click='review(123);'>[‡]</span>";
range.insertNode(newElement);
$compile($(newElement).contents())($scope);
当用户点击新字段时,我想执行激活控制器的审阅方法。 ($ scope.review = function(id){...};)
相反,页面导航到'#',而不调用review();
我认为click方法不会通过调用range.insertNode(newElement)来“绑定”到$ scope.review(); ?我尝试用$ apply包装,但这不起作用。
答案 0 :(得分:3)
使用href=""
代替href="#"
与Angular。如果href为空,则始终阻止默认操作。 http://docs.angularjs.org/api/ng.directive:a
还要确保$compile该元素。理想情况下,如果你正在做的事情主要是制作一个元素列表,那么ng-repeat就是这种情况。
答案 1 :(得分:0)
在模板的代码中,您可以完全删除href属性。如果您想要导航,请将其包含在ng-click表达式中。
答案 2 :(得分:0)
在元素中根本不需要href标记来进行ng-click工作。如果希望指针在悬停时更改,则可以使用内联样式或css。