AngularJS – 在页面之间传递数据

我是一个AngularJS初学者。 我正试图从以下地址发送数据:

  • 页面A:范列表页面

  • 页面B:范更新页面。

当用户点击面包车的更新链接时,我正在调用控制器并在控制器中检索面包车的详细信息。 但是,我不能使用相同的控制器分配面包车的详细信息到页面B(范更新页面)…错误"Cannot set property 'vanNumber' of undefined"

 *** Page A: Van List **** <form name="listVanForm" > <table> <tr> <td ng-controller="VanUpdateCtrl"><a href="#/van-update" ng-click="prePopulateForm(row.members.vanNumber.value )" class="btn btn-small btn-primary">update</a></td> </tr> </table> </form> *** Page B: Van Update **** <div class="container"> <h2>Edit Van </h2> <form name="updateVanForm" novalidate="novalidate" class="form-horizontal" ng-submit="updateCard(formData)"> <div class="control-group"> <label class="control-label" >Van Number:</label> <div class="controls"> <input type="text" id="vanNumber" ng-model="formData.vanNumber" placeholder=""/> </div> </div> </form> </div> *** VanUpdateCtrl ** app.controller('VanUpdateCtrl', ['$scope', 'VanUpdateFactory', '$location', function ($scope, VanUpdateFactory, $location) { //callback for ng-init 'populateDD': $scope.prePopulateForm = function (cardNoParam m) { alert('cardNo = '+cardNoParam); $scope.formData.cardNumber=cardNoParam;} } So, $scope.formData.cardNumber OR $scope.formData in the destination page is not recognised. 

您需要创build一个服务,以便能够在控制器之间共享数据。

 app.factory('myService', function() { var savedData = {} function set(data) { savedData = data; } function get() { return savedData; } return { set: set, get: get } }); 

在你的控制器A:

 myService.set(yourSharedData); 

在你的控制器B中:

 $scope.desiredLocation = myService.get(); 

请记住通过将它作为parameter passing给控制器​​注入myService。

如果您只需要在视图/范围/控制器之间共享数据,最简单的方法就是将其存储在$ rootScope中。 但是,如果您需要共享function,最好定义一个服务来完成这个function。

你应该做的是创build一个服务在控制器之间共享数据。

尼斯教程https://www.youtube.com/watch?v=HXpHV5gWgyk