Javascript AngularJS:“;扩大;DOM中的控制器(当您不能修改整个页面HTML时)
我正在Wordpress中使用AngularJS使用短代码将HTML插入帖子正文 问题是,我只能在帖子内容的正文中添加我的应用程序和控制器属性:Javascript AngularJS:“;扩大;DOM中的控制器(当您不能修改整个页面HTML时),javascript,jquery,html,angularjs,wordpress,Javascript,Jquery,Html,Angularjs,Wordpress,我正在Wordpress中使用AngularJS使用短代码将HTML插入帖子正文 问题是,我只能在帖子内容的正文中添加我的应用程序和控制器属性: <div id="content"> <div class="entry-content"> <div class="dynamic-content" ng-app="dynamicContent" ng-controller="dynamicContent as p"> &l
<div id="content">
<div class="entry-content">
<div class="dynamic-content" ng-app="dynamicContent" ng-controller="dynamicContent as p">
</div>
</div>
</div>
<div id="sidebar">
</div>
假设我希望我的应用程序也能控制侧边栏中的一个区域。我被迫修改一些核心文件,以便在DOM中获得更高的ng app
和ng controller
这是一个麻烦,因为在帖子中轻松插入角度应用程序(无需修改更多页面代码)是一项特权
我已经尝试使用jQuery将ng应用程序
和ng控制器
属性添加到页面body
,但这当然不起作用
除了延迟Angular,使用jQuery插入这些属性,然后在属性就位后让Angular运行之外,还有什么方法可以将我的控制器“扩展”到DOM树的其他部分吗?试试,它允许将Angular应用程序绑定到DOM,而无需使用ng app
:
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
尝试,它允许将angular应用程序绑定到DOM,而无需使用ng应用程序
:
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
使用
angular.bootstrap(document.getElementById(“myId”),['myApp'])
将应用程序手动附加到给定的DOM元素。当您无法编辑HTML,或者给定页面上有多个ng应用程序时,这非常有用。使用angular.bootstrap(document.getElementById(“myId”),['myApp']
将应用程序手动附加到给定的DOM元素。当您无法编辑HTML,或者在给定页面上有多个ng应用程序时,这非常有用。来自Boris Serebrov和mhodges的精彩答案
顺便说一句,我偶然发现了另一个不那么优雅的解决方案
如果
div
以ng controller
作为祖先加载,然后我使用jQuery将该div
移动到DOM的另一部分(即ng controller
不再是祖先),该应用程序仍能正常工作,就好像div
仍在其原始位置一样。来自Boris Serebrov和mhodges的精彩回答
顺便说一句,我偶然发现了另一个不那么优雅的解决方案
如果一个
div
加载了ng controller
作为祖先,然后我使用jQuery将这个div
移动到DOM的另一个部分(即ng controller
不再是祖先),应用程序仍然工作,就好像div
仍在其原始位置一样。非常好。非常感谢,太好了。非常感谢。