我正在嘗試做一個擴展管理器,用戶可以在其中運行和測試他們的Angularjs指令。動態定義的指令沒有被編譯
用戶創建一個extension
對象,並將其傳遞給我註冊指令的函數。
angular.module('CloudBoxes').directive(extension._id,
function() {
return {
template: extension.html,
restrict: 'E',
replace: true,
link: extension.js.controller,
scope: extension.js.scope
};
}
);
測試對象extension
{
_id: "testid",
js: {
title: "System.Dir",
fa: "fa-folder",
include: ["$http"],
controller: function (scope, element, attrs) {
alert("I am ready");
},
scope: {
args: "=",
}
},
html: "<div></div>"
};
而且我想在我的控制器的一個測試用$compile
這個動態添加指令。
$scope.$on('startExtension', function (event, id) {
var el = $compile("<" + id + ">" + "</" + id + ">")($scope);
$element.append(el);
});
id
上startExtension
事件參數是我將用於動態定義指令中extension._id
完全相同。
但是在$ compile之後,指令不會被替換。在DOM上,它就像下面那樣
<testid class="ng-scope"></testid>
謝謝你的幫助。