将数据传递到不同的视图/模板 - AngularJS

时间:2013-12-30 08:33:10

标签: angularjs angularjs-scope angularjs-ng-repeat

我刚开始使用AngularJS,所以我的问题可能非常基础。

我在一个视图中有一个链接,一旦点击调用服务,就会获取数据。在控制器中,我使用$ location更改视图,并使用从服务获得的数据更新新视图。视图正在改变,但我有更新数据的问题。以下是我的代码。

第一次观看:

<a class="red"  ng-href='#RestaurantDetails' ng-click='restaurantDetails()'>
   {{restaurant.name}}
</a>

控制器:

$scope.restaurantDetails = function()
{
    fpServices.loadRestaurantDetails(function(event){
        $scope.restaurantInfo = event;
        $scope.restaurantId = event[0].id;
        $location.path('/restaurant_details/'+$scope.restaurantId);
    });
};

'restaurantInfo'是我从服务中获得的一个对象。

第二视图:

{{restaurantInfo.name}}

尝试重复 - 没有运气。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

由于您是在第一个视图范围内设置内容,因此无法从其他视图范围访问它。

您可以使用$rootScope并将属性设置为activeRestaurant,例如

$rootScope.activeRestaurant=event;

然后可以在其他视图中访问它。记得在两个视图中注入$ rootScope。

更好的方法是创建一个服务,设置活动餐厅并从一个视图调用它来设置餐厅,从另一个视图调用它来获得活跃的餐厅。