添加以下超链接'像html一样:
<a style="color:white" ng-click="ClickMe()"><i class="fa fa-trash-o" style="color:white"></i>Click</a>
然后使用此代码触发click
事件,如
$scope.ClickMe = function () { alert("clicked"); }
工作得很好,但是当超链接“#39”时这不起作用。像
一样动态生成 $('<a style="color:white" ng-click="ClickMe()"><i class="fa fa-trash-o" style="color:white"></i>Click</a>').insertAfter("#dashboard_link");
有人能解释为什么会这样吗?
答案 0 :(得分:0)
Angular处理加载时的绑定。由于元素是动态生成的,因此您也必须动态绑定它。
答案 1 :(得分:0)
如果您在控制器中:您将要使用$ compile服务。
var el = $('<a style="color:white" ng-click="ClickMe()"><i class="fa fa-trash-o" style="color:white"></i>Click</a>').insertAfter("#dashboard_link");
$compile(el)($scope);
不要忘记将$ compile注入您的控制器。
然而正如评论中指出的那样,除了使用jquery操作dom之外,还有更好的选择。
答案 2 :(得分:0)
问题是当你使用JQuery时,你还没有在DOM中编译它。
您必须使用 $compile
编译 HTML字符串 或 DOM 进入模板并生成模板函数,然后可以将链接范围和模板一起用于。
表示 $compile
编译新的 DOM 并将其链接到当前范围。
请参阅to the AngularJs Docs了解更多详情。
答案 3 :(得分:-1)
在超链接中使用javascript:void(0)