ng-click的动态绑定?

时间:2013-08-21 17:42:31

标签: angularjs

当用户执行某项操作时,我会在符合条件的字段的文本中插入一个链接:

var newElement = document.createElement('span');
newElement.innerHTML = "<a id='123' class='cite' href='' data-ng-click='review(123);'>[&#8225;]</span>";
range.insertNode(newElement);
$compile($(newElement).contents())($scope);

当用户点击新字段时,我想执行激活控制器的审阅方法。 ($ scope.review = function(id){...};)

相反,页面导航到'#',而不调用review();

我认为click方法不会通过调用range.insertNode(newElement)来“绑定”到$ scope.review(); ?我尝试用$ apply包装,但这不起作用。

3 个答案:

答案 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。