Angular本身不綁定添加到DOM中的ng指令。
的$ sce.compile或$編譯幫助的角度看哪些元素被添加到實際的DOM,還使用了$編譯你必須使用一個指令。
應該是這樣的:
var m = angular.module(...);
m.directive('directiveName', function factory(injectables) {
return = {
priority: 0,
template: '<div></div>', // or // function(tElement, tAttrs) { ... },
transclude: false,
restrict: 'A',
templateNamespace: 'html',
scope: false,
controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... },
controllerAs: 'stringIdentifier',
bindToController: false,
require: 'siblingDirectiveName', 'optionalDirectiveName', '?^optionalParent'],
compile: function compile(tElement, tAttrs, transclude) {
return {
pre: function preLink(scope, iElement, iAttrs, controller) { ... },
post: function postLink(scope, iElement, iAttrs, controller) { ... }
}
},
};
});
並在您想要
$compileProvider.directive('compile', function($compile) {
return function(scope, element, attrs) {
scope.$watch(
function(scope) {
return scope.$eval(attrs.compile);
},
function(value) {
element.html(value);
$compile(element.contents())(scope);
}
);
};
角是自舉一次,所以如果您嘗試添加成分已經自舉後可能不會,雖然我工作不知道如何重新加載它們(如果你可以的話)。 –
爲了給出更好的答案,我建議你在StackOverflow或Plunker/JSFiddle的代碼編輯器中創建一個測試 – Enkode
AS @ExplosionPills注意到,你的問題可能與angularJs引導有關。你可以手動引導,在這裏看到更多:https://docs.angularjs.org/api/ng/function/angular.bootstrap –