angular.bootstrap 和 angular ui-路由器未启动控制器
angular.bootstrap and angular ui-router not launching controllers
我正在将现有的 AngularJS 移动应用程序从 Trigger.io 切换到 Cordova,因为它为我正在构建的内容提供了 better/more 插件。
Cordova 要求在 deviceready
event 触发后加载我的应用程序。我的应用程序构建在离子框架之上,它们为此事件提供了一个包装器 (window.ionic.Platform.ready
)。我认为它会像在设备准备就绪时从我的 HTML 和 bootstrap 我的应用程序中删除 ng-app
一样简单。唉...
我遇到了一些奇怪的事情。我正在使用 ui-router 来处理我的状态,它们在 $stateChangeStart
中被触发,但链接到该状态的控制器根本不会被触发。
我做了两个 Plunkrs 作为例子;
- first one 使用
ng-app
并且工作完美
- second one 使用
angular.bootstrap
,但从来没有 console.log
来自我的控制器的东西。
我是不是做错了什么?感谢您的帮助!
问题在于 rootElement 的选择,您只需要通过 document.body
获取正文,而不是尝试将其检索为 document.getElementById('body')
,而 return 没有任何内容。
angular.element(document).ready(function () {
angular.bootstrap(document.body, ['myApp']);
});
我正在将现有的 AngularJS 移动应用程序从 Trigger.io 切换到 Cordova,因为它为我正在构建的内容提供了 better/more 插件。
Cordova 要求在 deviceready
event 触发后加载我的应用程序。我的应用程序构建在离子框架之上,它们为此事件提供了一个包装器 (window.ionic.Platform.ready
)。我认为它会像在设备准备就绪时从我的 HTML 和 bootstrap 我的应用程序中删除 ng-app
一样简单。唉...
我遇到了一些奇怪的事情。我正在使用 ui-router 来处理我的状态,它们在 $stateChangeStart
中被触发,但链接到该状态的控制器根本不会被触发。
我做了两个 Plunkrs 作为例子;
- first one 使用
ng-app
并且工作完美 - second one 使用
angular.bootstrap
,但从来没有console.log
来自我的控制器的东西。
我是不是做错了什么?感谢您的帮助!
问题在于 rootElement 的选择,您只需要通过 document.body
获取正文,而不是尝试将其检索为 document.getElementById('body')
,而 return 没有任何内容。
angular.element(document).ready(function () {
angular.bootstrap(document.body, ['myApp']);
});