首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检测传递给angular中的$compile的字符串是可编译的吗?

检测传递给angular中的$compile的字符串是可编译的吗?
EN

Stack Overflow用户
提问于 2015-02-12 23:09:56
回答 1查看 50关注 0票数 2

我正在构建一个接受“消息”的指令,该“消息”也可以包含html和嵌套的angular指令。现在,在我的指令的控制器中,我这样做:

代码语言:javascript
运行
复制
var compiled = $compile(message)($scope);
this.message = $sce.trustAsHtml(compiled.html());

但是如果消息没有有效的开始和结束标记,它就不会编译。我想知道是否有其他方法,或者angular是否有任何方法可以在没有我使用正则表达式的情况下做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2015-02-12 23:52:58

我绝对不会去解析或验证HTML。jQuery/jqLite已经为我们做到了这一点。

angular.element需要根元素。因此,将消息包装在根元素中,编译并链接,然后取出内容:

代码语言:javascript
运行
复制
link: function(scope, element){
    scope.param = "test";
    var message = "foo {{param}} bar";

    var el = angular.element("<div>").append(message);
    var compiled = $compile(el)(scope);

    element.append(compiled.contents());
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28480962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档