![](/img/trans.png)
[英]How to get an Angular directive to render when added to the dom outside of Angular?
[英]How to run a directive added by DOM after declaring?
我想在聲明指令后添加DOM,但以后無法使用。 請檢查我的代碼:
http://jsfiddle.net/uh99z0uL/1/
angular.element(document).ready(function(){
angular.bootstrap(document, ["MyApp"]);
});
var MyApp = angular.module("MyApp", []);
MyApp.directive('user', function($rootScope){
var directive = {};
directive.restrict = 'E';
directive.template = "I'm {{name}}!";
directive.controller = function($scope){
//$scope.name = "Jack";
};
directive.scope = {
name: '@'
};
directive.compile = function($element, attributes) {
$element.addClass("show");
return function($scope, $element, attributes) {
};
};
return directive;
});
//This works...
angular.element(document.documentElement).append('<user name="Jack" />'); //ok
//Now I want to run the same but adding the DOM after declaring the directive
setTimeout(function(){
angular.element(document.documentElement).append('<user name="Carl" />'); //no
//not working...
},2000);
這些新元素可能會在聲明?之后運行指令。 謝謝兄弟們。
您必須在附加之前使用$ compile
angular.element(document.documentElement).append($compile('<user name="Carl" />')($scope));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.