我是一个AngularJS初学者。我正在尝试从以下位置发送数据:
到
当用户单击货车的更新链接时,我正在调用控制器并检索控制器中的货车详细信息。但是,我不能使用相同的控制器将面包车详细信息分配到页面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.
发布于 2014-03-14 23:32:54
您需要创建一个能够在控制器之间共享数据的服务。
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();
请记住通过将myService作为参数传递来将其注入控制器。
发布于 2014-03-14 23:30:17
您应该做的是创建一个服务来在控制器之间共享数据。
发布于 2015-01-21 08:56:48
如果您只需要在视图/作用域/控制器之间共享数据,最简单的方法是将其存储在$rootScope中。但是,如果您需要一个共享函数,最好是定义一个服务来执行此操作。
https://stackoverflow.com/questions/22408790
复制相似问题