2016-08-19 38 views
1

我上AngularJS项目工作的意见之间的交流,我使用ui-router产生嵌套视图。我有一个国家产生多个意见。AngularJS - 属于同一个国家的UI路由器

我的问题是:我怎么能沟通和意见之间发送数据? 我搜索了很多,我仍然被这个问题困住了。我已经使用$rootscope,$brodcast$on,但我不认为这是最佳做法。

请帮忙吗?非常感谢你。嵌套视图之间

+0

使用厂家或服务 –

回答

1

传递数据并不比任何其他两个视图之间传递数据不同。有两种基本情景可供借鉴。如果这些视图使用相同的控制器,那么你的问题根本就没有问题,并且你可以将同一个$ scope传递给两个视图。如果您的视图使用不同的控制器,那么真正的问题是如何在两个控制器之间传递数据,而不管视图如何。两个或更多控制器之间

传递数据是容易通过外壳中的数据的提供者,例如工厂,然后包括工厂作为依赖于每个控制器需要比访问数据来完成。

下面是一个简单的例子:

视图1(通过路线congif分配CTRL1)

<div> 
    <h1>View 2</h1> 
    <p>{{data.value}}</p> 
</div> 

控制器1

myApp.controller('Ctrl1', ['$scope', 'myFactory', function($scope, myFactory){ 
    $scope.data = myFactory.data; 
}]); 

视图2(分配CTRL2通过路线congif)

<div> 
    <h1>View 2</h1> 
    <p>{{data.value}}</p> 
</div> 

控制器2

myApp.controller('Ctrl2', ['$scope', 'myFactory', function($scope, myFactory){ 
    $scope.data = myFactory.data; 
}]); 

最后你

myApp.factory('myFactory', function(){ 
    return { 
     data: { 
      value: 'some data' 
     } 
    } 
});