2016-08-19 36 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' 
     } 
    } 
});