从Javascript调用AngularJS控制器

从Javascript调用AngularJS控制器,javascript,angularjs,Javascript,Angularjs,我正在客户端加载视图和脚本。我试图实现在javascript中加载和调用angularjs控制器 加载容器viewv1.html,主脚本如myscript.js和angular.js myscript.js将在v1.html和angle controllercontroller.js中加载viewv2.html v2.html如下所示: {{msg}}。 controller.js如下所示: 角度.module'loadApp',[].controller'loadCtrl',函数$scope

我正在客户端加载视图和脚本。我试图实现在javascript中加载和调用angularjs控制器

加载容器viewv1.html,主脚本如myscript.js和angular.js myscript.js将在v1.html和angle controllercontroller.js中加载viewv2.html v2.html如下所示: {{msg}}。 controller.js如下所示: 角度.module'loadApp',[].controller'loadCtrl',函数$scope{ $scope.load\u msg=函数\u msg{ $scope.msg=\u msg; }
}; 您可能没有等待angular引导编译HTML,因此范围不可用。在运行javascript之前,请使用angular.elementdocument.ready

角度.module'loadApp',[].controller'loadCtrl',函数$scope{ $scope.load\u msg=函数\u msg{ $scope.msg=\u msg; } }; //等待angular启动 angular.elementdocument.readyfunction{ var scope=angular.elementdocument.getElementById'v1_id'。scope; //因为我们在角度世界之外,所以我们需要应用范围 作用域。$applyfunction{ 范围。加载消息“Hi”; }; }; {{msg}}
你为什么要这么做?大多数情况下,您不需要使用element.scope。无论如何,试着把你的东西放在控制器里,不要把所有东西都放在同一个层次上,也许就是这样。同意floribon的观点,element.scope是你为了检查作用域而只在快速调试会话中使用的东西。将它用于其他用途是一个很大的代码气味。我仍然得到:uncaughttypeerror:cannotreadproperty'$apply'of undefined。您可以看到,它正在处理我的示例代码。你能用你现在所做的更新你的问题吗?