Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:“;扩大;DOM中的控制器(当您不能修改整个页面HTML时)_Javascript_Jquery_Html_Angularjs_Wordpress - Fatal编程技术网

Javascript AngularJS:“;扩大;DOM中的控制器(当您不能修改整个页面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

我正在Wordpress中使用AngularJS使用短代码将HTML插入帖子正文

问题是,我只能在帖子内容的正文中添加我的应用程序和控制器属性:

<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
仍在其原始位置一样。

非常好。非常感谢,太好了。非常感谢。