Angularjs directive with ng-click
Angularjs directive with ng-click
我是Angularjs的新手,正在尝试创建一个字典指令,用锚标记搜索和替换文本。搜索和替换部分工作正常,但我无法让ng点击工作
HTML
<div mk-dct>Lorem ipsum [dolor] sit [amet]</div>
角度
app.directive('mkDct', function () {
var pattern = /'[([^']]+)']/g;
return {
restrict: 'A',
link: function(scope, element, attrs) {
var txt = element.html();
var m = txt.match(pattern);
for(var i = 0; i < m.length; i++){
var word = m[i].substring(1, m[i].length-1);
txt = txt.replace(m[i], '<a class="dict-item" ng-click="func('''+word+''')" href="#">'+ word + '</a>');
}
element.html(txt);
}
};
更新
下面的评论行使它按预期工作。
app.directive('mkDct', function ($compile) {
var pattern = /'[([^']]+)']/g;
return {
restrict: 'A',
scope: true,
link: function(scope, element, attrs) {
var txt = element.html();
var m = txt.match(pattern);
for(var i = 0; i < m.length; i++){
var word = m[i].substring(1, m[i].length-1);
txt = txt.replace(m[i], '<a class="dict-item" ng-click="func('''+word+''')" href="#">'+ word + '</a>');
}
// Compile to template.
txt = $compile(txt)(scope);
// Clear and append.
element.empty().append(txt);
}
};
});
您需要编译您的元素。
编辑在循环后添加compile语句,如下面的注释所述。
txt = $compile(txt)(scope);
相关文章:
- Angular,表达式{{}}的结果没有插入到ng-click中
- Ng隐藏在Ng-click元素之外
- 如何在ng-click中传递php对象
- AngularJs的ng-click$事件将子元素作为目标传递
- 使用jqGrid列格式化程序函数使ng-click工作
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- ng-click指令没有调用整个函数
- 在控制器中添加$location依赖项时,ng-click停止激发
- 如何在ng repeat中使用ng click
- 将我的列表 vom ng-repeat 更改为收集重复 ng-click 后,无法正常工作
- 在 ng-click 中设置$scope变量指令
- 在 Angular 指令中定义一个用于 ng-click 的函数
- 为什么我们需要 ng-click
- (angularJS)使ng-click在ng-repeat上打开一个链接
- 为什么ng-click被称为按钮被点击的次数
- Angularjs directive with ng-click
- AngularJS ng-repeat combined with ng-click=orderByField
- Angular JS Routing with ng-click
- AngularJS generate HTML template with ng-click="functio
- 如何将单选按钮标记为选中Angular with ng click/ng change