Javascript angularjs-动态更新页面上的所有指令后重新加载它们
我在html页面中有一组指令,假设指令是Javascript angularjs-动态更新页面上的所有指令后重新加载它们,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我在html页面中有一组指令,假设指令是。这些指令是在AngularJS之外添加或更改的,例如,jQuery函数只需将一个新的附加到页面上 这里是我的问题-在添加新的之后,指令实际上没有做任何事情-它只是一个没有任何功能的标记 如何强制Angular识别已添加的新标记?我试过在scope.apply上乱搞,但运气不好 谢谢 我想您正在寻找angulars$compile方法: myApp.directive('addonclick', function($compile){ return
。这些指令是在AngularJS之外添加或更改的,例如,jQuery函数只需将一个新的
附加到页面上
这里是我的问题-在添加新的
之后,指令实际上没有做任何事情-它只是一个没有任何功能的标记
如何强制Angular识别已添加的新标记?我试过在scope.apply上乱搞,但运气不好
谢谢 我想您正在寻找angulars
$compile
方法:
myApp.directive('addonclick', function($compile){
return {
restrict: 'A',
link: function(scope, element, attrs){
var html = attrs.addonclick; //or something else
element.on("click", function(){
$(element).append($compile(html)(scope));
})
};
};
});
编辑:
首先尝试获取范围:
var scope = angular.element("yourElement").scope();
然后获取并调用编译服务:
var compile = angular.element("yourElement").injector().get("$compile"); //or
var compile = angular.injector(["moduleName"]).get("$compile");
$("yourElement").append(compile("<my-directive/>")(scope));
var compile=angular.element(“yourElement”).injector().get(“$compile”)//或
var compile=angular.injector([“moduleName”]).get(“$compile”);
$(“yourElement”).append(compile(“”)(scope));
是否有不使用数据绑定来操纵视图的原因?例如,ng repeat
我不确定我是否理解了这些问题,但我在页面的不同部分加载了几个指令,由外部代码控制,这些代码不是angular的一部分。好的,但在这种情况下,AngularJS指令本身将代码添加到页面中。我想以一种与AngularJS完全不同的方式添加div,例如,一个常规的ol'jquery“click”方法将添加div。我不确定这是否可行,因为您需要范围。我也不知道你为什么要这样做,为什么你不能创建自己的指令,在单击时添加my directive
?…也许你应该发布更多的代码来说明这一点。我不能这样做的原因是因为我不控制页面中添加代码的部分,我只控制页面上显示的指令。但是我可以告诉页面的其他部分要运行什么代码来插入新指令,或者插入指令后要运行什么代码。获取$compile
服务的第二个版本不起作用。看起来您还必须包括所有的依赖模块。