在ng-bind-html中绑定ng-click::在HTML中绑定Angular属性
Bind ng-click in ng-bind-html :: Binding Angular attributes in the HTML
我有一个基于导航堆栈动态更改的HTML代码。我使用ng-bind-html
将包含代码的字符串插入视图中。现在我还需要能够在视图中输入ng-click属性。一切都很好,除了ng-click
属性没有被注入,因此我无法在面包屑中快速导航。
这是我传递给视图的HTML:
$scope.breadcrumbs = $scope.breadcrumbs + ' <i class="ion-ios-arrow-forward"></i> ' + '<span ng-click="goToLevel(pathLength)" class="browse-breadcrumbs-link">' + $scope.title + '</span>';
类被应用,但ng-click属性被忽略。我错过了什么?谢谢。
如果你看看ng-bind-html
API,你会知道它只解析html &使用element.text
将其作为文本附加到DOM。添加的html不会有任何编译过的angular DOM。它将作为正常的标记。
我建议你自己的指令来处理面包屑的东西,把它放在breadcrumb
元素。这样你就能在指令链接函数中控制DOM。创建breadcrumb html后,您需要首先编译该html,然后使用$compile
服务将其附加到breadcrumb
DOM。
link: function(scope, element, attrs){
//you code would something like below..
//create an html
scope.breadcrumbs = scope.breadcrumbs + ' <i class="ion-ios-arrow-forward"></i> ' + '<span ng-click="goToLevel(pathLength)" class="browse-breadcrumbs-link">' + $scope.title + '</span>';
element.empty();
element.append($compile(scope.breadcrumbs)(scope))
}
从面包屑的语法来看,它看起来可以用简单的ng-repeat
代替,并将html留给视图层,即
$scope.breadcrumbs.push(newCrumb)
其中newCrumb是一个包含所有信息的对象
<<h3>视图/h3><span ng-repeat="crumb in breadcrumbs">
<i class="ion-ios-arrow-forward"></i>
<span ng-click="goToLevel(pathLength)" class="browse-breadcrumbs-link">{{crumb.title}}</span>
</span>
相关文章:
- Ember.js/HHandlebars:使用{{view}}助手渲染的视图不绑定属性
- 聚合物 - 在重复模板中获取数据绑定属性值
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- AngularJS1.2 Directive双向绑定属性未反映到View
- 为什么AngularJS在页面加载时没有自动绑定属性?包括一个非常简单的例子
- 如何在AngularJS指令中绑定属性
- 更改铁列表中现有项的绑定属性的值
- 如何使用 angularjs 中的表达式绑定属性名称
- Angular 指令内部 HTML 重新编译,动态创建绑定属性
- 标识事件中的绑定属性
- AngularJS 指令未正确绑定属性
- 在显示绑定属性之前在 JavaScript 中格式化绑定属性
- 从数据绑定属性迭代键值对
- 剑道绑定属性与字符串和变量
- 如何在一个元素上具有多个数据绑定属性
- 无法识别余烬组件 - 绑定属性渗入控制器
- 挖空添加我自己的数据绑定属性,如 With
- Emberjs如何绑定属性和id
- Ember绑定属性没有更新,尽管控制器属性更新得很好
- 如何在Knockout中选择性地绑定属性