【问题标题】:Get the HTML output from an Angular template in javascript从 javascript 中的 Angular 模板获取 HTML 输出
【发布时间】:2014-07-30 00:59:28
【问题描述】:

我有一个角模板,我希望能够从 javascript 函数中访问处理后的 HTML。

例如,如果模板位于 templateUrl 下

 "/scheduler/tooltip.html"

HTML 类似于

 <div>{{tip.Name}}</div>

是一种在不使用所有指令开销的情况下调用和处理该模板的方法吗? 例如:

 angular.$compiletemplate('/scheduler/tooltip.html', { tip: { Name: "foo" }});

在这种情况下,我专门尝试解决第三方库在现有角度范围之外附加 DOM 元素的问题 - 所以我 似乎 无法使 HTML 成为指令.

如果有一种方法可以确保指令可以在页面上的任何地方工作,这也可能是有用的。

【问题讨论】:

  • 指令编译完成后,您可以执行 element.html() 之类的操作来获取结果

标签: angularjs angularjs-directive angularjs-scope angular-template


【解决方案1】:

不确定这是否有帮助:

app.directive('yourDirective', function ($interval) {

    var linker = function(scope, element, attrs) {

        var contents = element.html(); // this gets element HTML, initial HTML
        var currentContents = element.html();
        function updateContents() {
            currentContents = element.html();
            if(currentContents.length > contents.length)
                console.log('contents changed');
        }

        var interval = $interval(reportChange, 1000);

    }

}); 

【讨论】:

  • 对于第三方 javascript 运行并将内容插入 DOM,您可能只需要创建一个间隔并让它每隔几秒报告一次更改
  • 如果你希望指令中作用域上的变量发生变化,你可以创建一个 scope.$watch 函数来报告 html 中的变化并查看是否插入了一些东西
猜你喜欢
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
  • 2011-02-16
  • 2011-10-24
  • 1970-01-01
相关资源
最近更新 更多