我正在尝试将指令输出为javascript 字符串,以便可以将html放置在代码显示窗口中。我对实际代码而不是浏览器呈现的版本感兴趣,因为我正在向高级用户显示代码。所以我希望能够将指令函数注入服务或可能的页面控制器。
这将类似于 using$compile
或什至$interpolate
,但针对特定指令。我想我已经定义了指令,我很有可能以某种方式访问 html 生成功能。我知道您可以在指令定义中定义控制器,但我正在寻找我在服务或页面控制器中使用的解决方案。
因此,例如,假设我在模块中定义了一个指令
mod.directive("superThing", function() {
return {
templateUrl: "/superThing.html",
scope: {
variableA: "="
}
};
});
防爆服务:
mod.service("applicationService", [ "$rootScope", "superThing",
function ($rootScope, superThing) {
$rootScope.result = superThing($rootScope);
}
]);
(我知道像这样使用 $rootScope 很奇怪,但我只是想提出一个简短的成功示例。)
示例页面模板:
<fieldset>
<legend>Preview:</legend>
<div data-super-thing data-variable-a="false">
</div>
</fieldset>
<fieldset>
<legend>Code output:</legend>
<textarea rows="4" cols="50" data-code-mirror="{{result}}">
</textarea>
</fieldset>
有没有办法将指令或类似指令的内部 $compiled 版本注入到服务中?