Angular Directives - 如何将属性设置为innerHML

时间:2017-06-11 20:53:55

标签: javascript html angularjs angular-directive

如何将属性设置为内部HTML

tpl.html

<div class="my-templeate"></div>

HTML

<template></template>

指令

app.directive('template', ['$compile', function($compile) {
        return {
            restrict: "EA",
            templateUrl: './tpl.html',
            link: function($scope, $elm, $attr) {

                var elm =$elm[0].innerHTML;

                elm.attr('id', "someId");
            }
        };
    }]);

在这里,我想将属性设置为附加到<div class="my-templeate"></div>元素的innerHtml <template></template>

我该怎么做?

1 个答案:

答案 0 :(得分:1)

只要您拥有这个庞大而强大的框架,您也可以使用它。设置范围数据并让模板读取它,而不是绕过Angular自己编辑DOM。模板:

<div class="my-template" id="{{someId}}"></div>

指令:

app.directive('template', ['$compile', function($compile) { // $compile is unnecessary here unless you're using it for something else in this directive
    return {
        templateUrl: './tpl.html',
        link: function($scope, $elm, $attr) {
            $scope.someId = "whatever";
        }
    };
}]);

一般来说,如果你在使用Angular时直接操作DOM,你可能会以艰难的方式或完全错误的方式做事。