为了账号安全,请及时绑定邮箱和手机立即绑定

AngularJS-在页面之间传递数据

AngularJS-在页面之间传递数据

长风秋雁 2019-11-26 10:23:13
我是AngularJS入门者。我正在尝试从发送数据:A页:范列表页面至网页B:Van更新页面。当用户单击货车的更新链接时,我正在调用控制器并在控制器中检索货车详细信息。但是,我无法使用同一控制器将货车详细信息分配给页面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.
查看完整描述

3 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

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


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作为参数传递到控制器中。


查看完整回答
反对 回复 2019-11-26
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

如果只需要在视图/作用域/控制器之间共享数据,最简单的方法是将其存储在$ rootScope中。但是,如果需要共享功能,最好定义一个服务来实现。


查看完整回答
反对 回复 2019-11-26
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

app.factory('persistObject', function () {


        var persistObject = [];


        function set(objectName, data) {

            persistObject[objectName] = data;

        }

        function get(objectName) {

            return persistObject[objectName];

        }


        return {

            set: set,

            get: get

        }

    });

像这样填充数据


persistObject.set('objectName', data); 

像这样获取对象数据


persistObject.get('objectName'); 


查看完整回答
反对 回复 2019-11-26
  • 3 回答
  • 0 关注
  • 873 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信