Angularjs 如何更改“角度材质”指令并进行编译

Angularjs 如何更改“角度材质”指令并进行编译,angularjs,angularjs-directive,compilation,angular-material,Angularjs,Angularjs Directive,Compilation,Angular Material,如果我编译原生html元素,它可以正常工作 但若我在控制台中编译角度材质元素(md按钮),则会显示“Error:[ngTransclude:orphan]” 我完全累了,想不出来。 我需要从模板中获取html代码,我知道当我们从字符串值创建元素并编译它时,它工作正常。也许必须使用$mdCompiler,但我不知道如何使用 这里有一个简单的小例子,请帮助我 console.log(“\n\n\n\n”); console.clear(); var app=angular.module('Bla

如果我编译原生html元素,它可以正常工作

但若我在控制台中编译角度材质元素(md按钮),则会显示“Error:[ngTransclude:orphan]”

我完全累了,想不出来。 我需要从模板中获取html代码,我知道当我们从字符串值创建元素并编译它时,它工作正常。也许必须使用$mdCompiler,但我不知道如何使用

这里有一个简单的小例子,请帮助我


console.log(“\n\n\n\n”);
console.clear();
var app=angular.module('BlankApp',['ngMaterial']);
app.controller(“myCtrl”,函数($scope){});
app.directive('mydir',['$compile',function($compile){
返回{
范围:{
},
模板:
“md按钮”+
“本机按钮”+
“请帮我”,
限制:“E”,
链接:函数(范围、元素、属性){
scope.fn=function(){console.log(“Hello”);};
var mdButton=element.find(“button”).eq(0);
属性(“ng click”,“fn()”);
$compile(mdButton)(范围);
console.log(mdButton[0]);
var按钮=元素。查找(“按钮”)。等式(1);
attr(“ng click”,“fn()”);
$compile(按钮)(范围);
console.log(按钮[0]);
}
};
} ] );

这是因为
md按钮已编译

也许,你可以用这个

举个例子

var-app=angular.module('BlankApp',['ngMaterial']);
app.controller(“myCtrl”,函数($scope){});
app.directive('mydir',['$compile','$mdCompiler',函数($compile,$mdCompiler){
返回{
作用域:{},
模板:“本机按钮”+
“请帮我”,
限制:“E”,
链接:函数(范围、元素、属性){
scope.fn=函数(){
console.log(“你好”);
};
$mdCompiler.compile({
模板:“md按钮”
}).then(函数(编译数据){
编译数据链接(范围);
element.prepend(compileData.element);
});
var按钮=元素。查找(“按钮”)。等式(0);
attr(“ng click”,“fn()”);
$compile(按钮)(范围);
}
};
}]);