所以,我现在正在构建一个Angular Web应用程序,现在我正试图了解构建路径和视图的基础知识。
在我的DashboardCtrl中,我有我的spartaCustomers数组,我存储了一些有关我的客户端的信息。
在我的仪表板视图中,我构建了一个基本表并吐出了信息。如您所见,我将每行中的客户端链接到新的/客户端页面,并将ID传递给URL。
我需要帮助
在下面的ClientCtrl中,我想从DashboardCtrl中获取数组中的客户端对象,以便我可以在/ client视图中使用它。我成功地从URL中获取了客户端ID,但还没有想出如何查找"查找"来自第一个控制器的客户信息。
任何帮助将不胜感激!
我的代码:
<table class="table">
<th>Client id</th>
<th>Name</th>
<th>Current Contract Length</th>
<th>Current Contract Value</th>
<th>Start Date</th>
<th>End Date</th>
<th>Next Renewal Date</th>
<th>MRR</th>
<tr ng-repeat="c in spartaCustomers">
<td>{{c.id}}</td>
<td><a href="/#/client/{{c.id}}">{{c.name}}</a></td>
<td>{{c.currentContractLength}}</td>
<td>{{c.currentContractValue}}</td>
<td>{{c.startDate}}</td>
<td>{{c.endDate}}</td>
<td>{{c.nextRenewalDate}}</td>
<td>{{c.mrr}}</td>
</tr>
</table>
第一个控制器:
.controller('DashboardCtrl', function ($scope) {
$scope.spartaCustomers = [{
id: 1,
name: "John Inc",
currentContractLength: 12,
currentContractValue: 18000,
startDate: "09/01/2014",
endDate: "09/01/2015",
nextRenewalDate: "09/01/2015",
mrr: 1500
}, {
id: 2,
name: "Peters Company Ltd",
currentContractLength: 3,
currentContractValue: 15000,
startDate: "09/01/2014",
endDate: "09/01/2015",
nextRenewalDate: "09/01/2015",
mrr: 1500
}]
)};
我的客户&#34;控制器:
angular.module('atlantisApp')
.controller('ClientCtrl', function ($scope, $routeParams, $filter) {
$scope.clientId = $routeParams.clientId; //This works and fetches the id
//fetch the client object here for use inside this controller
});
答案 0 :(得分:1)
您可以使用服务在控制器之间共享数据。下面只是一个例子
app.factory('theService', function() {
return {
customers: {}
};
});
app.controller("DashboardCtrl", function($scope, theService) {
theService.customers = $scope.customers;
});
app.controller("ClientCtrl", function($scope, theService) {
$scope.customers = theService.customers;
});
或者您可以从服务器获取每个客户ID的数据,这将使控制器彼此独立。