替换指令中的值而不替换整个指令
Replacing value inside directive without replacing entire directive
我的指令有一个模板,其中包含一个名为 content
的范围变量:
<div class="directive-view">
<span class="directive-header">My Directive</span>
{{content}}
</div>
我有以下指令:
(function () {
"use strict";
angular
.module('myApp.myDirective', [])
.directive("myDirective", myDirective);
function myDirective($compile) {
return {
restrict: 'E',
scope: {
},
templateUrl:'../partials/directives/my-directive.html',
controller: function($scope) {
$scope.content = "<span>Some HTML — some more HTML</span>";
},
link: function (scope, element, attrs, ctrl) {
var compiledContent = $compile(scope.content)(scope);
scope.content = compiledContent;
}
};
}
})();
我希望看到代替{{content}}
的是:
Some HTML — some more HTML
相反,我在那里看到的是:
{"0":{"ng339":23},"length":1}
如何将作用域字符串的值设置为某个初始值,然后在编译指令时从指令链接中更新它(作为编译的 HTML)?
这是一个工作 plunker。
首先,更改:
.directive('my-directive')
自
.directive('myDirective')
此外,根据我收集的信息,您希望在编译时使用驻留在指令中的范围变量将 html 嵌入到指令模板中。您不需要为此$compile
。
为此,您需要按如下方式使用ngBindHtml
:
.HTML:
<div class="directive-view">
<span class="directive-header">My Directive</span>
><div ng-bind-html="trustAsHtml(content)"></div>
</div>
命令:
function myDirective($compile, $sce) {
return {
restrict: 'E',
scope: {
},
template: '../partials/directives/my-directive.html',
controller: function($scope) {
$scope.content = "<span>Some HTML — some more HTML</span>";
},
link: function (scope, element, attrs, ctrl) {
scope.trustAsHtml = function(val) {
return $sce.trustAsHtml(val);
}
}
};
}
听起来你想要某种占位符文本/html来代替content
绑定,直到它被解决并应用。在这种情况下,您最好在模板中修复它:
<div class="directive-view">
<span class="directive-header">My Directive</span>
<span ng-bind-html="content">Some HTML — some more HTML</span>
</div>
是的,.directive("my-directive", myDirective);
应该.directive("myDirective", myDirective);
但我想这只是错字。
相关文章:
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 无法用tr替换表中的指令
- 当指令模板的各个部分存在各自的交叉内容时,替换它们
- AngularJS指令模板ng重复有趣的替换
- AngularJS SVG 指令,不推荐使用替换
- 如何实现 Angular 指令来替换元素,但仅限于某些情况
- 替换指令中的值而不替换整个指令
- 为什么将 ng-select 替换为自定义指令会导致$http请求不会每隔一段时间发送一次
- 正则表达式在指令中替换为 html 标记
- 控制 AngularJS 如何替换 ngInclude 或自定义指令
- 如何使用带有替换的模板覆盖/补充指令中的ng类:true
- 为什么“替换:真”在 AngularJS 指令中被弃用
- 用于替换用户输入中的字符的角度指令
- 如何替换Angular指令中不推荐使用的替换属性
- 替换“;templateUrl”:路径带有“;模板”:使用gump的角度指令的内容
- 用于替换文本的 Angularjs 指令
- 在指令's链接中替换angular元素html
- 如何让angular指令包含&替换另一个指令
- AngularJS指令:将属性值直接替换到模板中
- SVG的角度替换指令(结果在DOM中,但未显示)