如何在控制器中呈现指令?

时间:2015-08-18 16:13:54

标签: javascript angularjs

例如,有一个指令

(function() {
    angular.module("mydir", []).directive("mydir", mydir);

    function mydir() {
        return {
            restrict: "EA",
            templateUrl: "app/components/myDir/myDir.template.html",
        };
    }
}());

并且在控制器中我尝试执行以下操作

var temp = "<div mydir></div>";
var content = $compile(temp)({});

compile返回一个div元素,但想要指令的模板。

2 个答案:

答案 0 :(得分:0)

使用驼峰案例命名指令,但是,在HTML中,它们使用连字符(myDir - &gt; my-dir)。

<div my-dir></dir>

答案 1 :(得分:0)

您的代码似乎对我有用。

使用Javascript:

var app = angular.module('defaultmod',[]);
app.directive('mydir',function(){
    return {
        restrict:'AE',
        template:'<span>hello</span>'
    };
});

app.controller('defaultctrl', function($scope,$compile){
    var temp = "<div mydir></div>";
    var content = $compile(temp)({});
    alert(content[0].outerHTML);
});

HTML

  <div ng-app="defaultmod">
        <div ng-controller="defaultctrl">

        </div>
    </div>

的jsfiddle http://jsfiddle.net/vcps7yy0/