Cha*_*ink 14 javascript angularjs
我正在写一个javascript应用程序,在另一个我无法控制的页面中调用.我希望能够嵌入一个Angular JS应用程序,但是如何在不修改URL的情况下处理路由?在这种情况下,测试(即e2e)如何工作?
编辑:该应用程序是一个wordpress插件,它叠加在Wordpress仪表板上,因此无法修改URL和页面历史记录.该应用程序将绑定到嵌入在页面中的div,并使用CSS覆盖在现有内容上.
我相信您可以查询AngularJS和您的应用程序,并使用钩子提供必要的HTML.有几点需要注意:
由于您在生成的URL中运行,因此templateURL
必须动态构建s.例如,将URL的脚本标记输出到插件文件夹:
<script>var MY_PLUGIN_BASE = '<?php echo plugins_url(); ?>'</script>
Run Code Online (Sandbox Code Playgroud)
然后定义您的路线并templateURL
使用该常数:
$routeProvider
.when('/', {
templateUrl: MY_PLUGIN_BASE+'my-plugin/views/main.html',
controller: 'Main'
})
Run Code Online (Sandbox Code Playgroud)
这有效,但总的来说我会避免在这种情况下使用路由.这会导致控制器和指令中的更多工作,但它更安全,因为页面上可能有其他客户端MVC应用程序.
该ng-app
附连到您的视图,而不是根元素body
.
对于更通用的嵌入式AngularJS应用程序(根据我的经验:书签),您需要:
window.angular
),CSS和HTML 注入AngularJS .注入你的应用程序的JS文件.因为只有一个ng-app
将自动引导,所以使用手动引导您的应用程序angular.bootstrap
angular.bootstrap(document.getElementById('my-app'), ['MyApp'])
Run Code Online (Sandbox Code Playgroud)使用绝对URL templateURL
,并确保URL已启用CORS.
归档时间: |
|
查看次数: |
9054 次 |
最近记录: |