重新编译由外部脚本修改的块

时间:2014-08-13 11:01:55

标签: javascript jquery angularjs dom

我必须使用修改我的DOM的框架。以下是一些使用的示例HTML:

<div id="testID" ng-show="example === 'show'">Some Content</div>

将由框架修改为:

<div id="wrapperOne">
    <div id="wrapperTwo">
        <div id="testID" ng-show="example === 'show'">Some Content</div>
    </div>
</div>

这可以通过调用像这样的JS函数来完成:

framework.wrap($("#testID"));

如您所见,框架使用其他一些元素包装旧HTML。 我的问题是,当$ scope.example变为'show'时,Angular不会显示div。没有使用框架,它工作正常,我认为问题是,angular在框架更改之前编译DOM。框架必须等待ajax请求,所以在它不起作用之后只包括角度脚本。

我正在寻找一种强制角度的解决方案来“重新编译”整个DOM,更好的是它的某些部分。 这是正确的提案,还是有其他方法可以做到这一点?只是省略框架不是解决方案,因为我必须使用它。

非常感谢,

-Lukas

1 个答案:

答案 0 :(得分:0)

将自定义directiveng-transclude

一起使用

我创造了一个小提琴 - http://jsfiddle.net/zghuoxhb/2/

<强>指令:

.directive('myWrapper', function () {
    return {
        restrict: 'E',
        templateUrl: "my-wrapper-template.html",
        replace: true,
        transclude: true,
        scope: false
    };
})

<强> HTML:

<my-wrapper>
    <div id="testID" ng-show="example === 'show'">Some Content</div>
</my-wrapper>

<强>输出: enter image description here

BTW优秀的问题,这是展示角度真棒的一个很好的用例