2012-11-26 281 views
2

我有2个CakePHP页面。他们都使用angularjs。这是一个片段。如何从另一个angularjs页面打开一个angularjs页面

/items/items.ctp

<div id="ng-app" ng-app>` 
    <div ng-controller="ItemController"> 
     <a href="#" ng-click="showAddPopup">Add</a> 
    </div> 
</div> 

功能showAddPopup定义如下

$scope.showAddPopup = function() { 
    $.colorbox({href:'/items/add/' + $scope.order.id,open:true,close : "x", onClosed:function(){}}); 
} 

/items/add.ctp

<div id="ng-app" ng-app>` 
    <div ng-controller="AddController"> 
     <h2>{{order.label}}<h2> 
    </div> 
</div> 

现在,当我点击从项目视图添加链接,我得到一个与add.ctp的内容弹出。但问题是,而不是显示订单标签说'我的订单',h2标签显示{{order.label}}

当我打开从不使用angularjs的页面添加视图我得到一个正确的结果。我究竟做错了什么。请帮忙。我已经浪费了很多天。

+0

你试图把这个在一个指令一个伟大的选择?指令可以自己加载模板(可以通过Angular编译),您可以使用colorbox的'inline'或'html'选项而不是'href'。请参阅http://www.youtube.com/watch?v=iB7hfvqyZpg&feature=plcp –

+0

这不是因为嵌套的ng-apps吗?根据文档,你不能在单个文档中有更多的ng-app [http://docs.angularjs.org/api/ng.directive:ngApp](http://docs.angularjs.org/api/ ng.directive:ngApp)。所以当你从角度应用打开弹出窗口时,你在单个页面上有两个ng-app。 – matys84pl

回答

0

如果问题是嵌套的ng-apps,可能打开设置iframe的colorbox可能是解决方案。

$.colorbox({inline:false; iframe:true;href:'/items/add/'...}); 
相关问题