我有一个用angularjs编写的facebook应用程序,它都像魅力一样 除了我通过应用程序的各个链接的事实 例如http://[baseurl]/#/item/25这不会反映导航栏中显示的仍然保留的网址http://apps.facebook.com/MyTestApp/
所以我在这里需要的是能够在包含我的应用程序的iframe之外反映angularjs路由。
答案 0 :(得分:0)
最后,我通过解析url中的参数来管理这种情况,比如
http://apps.facebook.com/MyTestApp/index.php?p=goto#item/48
所以,一方面,一旦我登陆index.php,通过php我检查$ _GET ['vairable']并使用它作为触发器来获取哈希字符串来提供一个javascript变量在包含angluar之前直接执行。因此,只要执行mainController(与索引关联的角度控制器),具有路径的变量就已经实例化。 此时,angular检测到有一个变量迫使路径到达某个地方,并且它将在那里进行路由。
这是一些代码
标记中的index.php,紧跟在jquery lib包含之后和之前 角度包括
<script language="javascript" type="text/javascript">
var redirect_to = null;
$(function() {
<?php
// redirecting rulez
if(isset($_GET['p'])) {
?>
redirect_to = window.parent.location.hash.substring(1);
<?php
}
?>
});
</script>
mainControl.js是在你加载index.php的时候被点击的那个
if(redirect_to != null)
$location.path(redirect_to);
在其他控制器中
if(redirect_to != null)
window.parent.location.hash = "#" + $location.path();
重复所有其他控制器。享受