簡體   English   中英

將對象從一個控制器傳遞到另一個AngularJS

[英]Passing Object from One Controller to Another AngularJS

我需要將一個對象從一個控制器傳遞到另一個控制器,並且已經使用了解決方案,但是它無法正常工作。

這里的代碼:

angular.module("customerApp", [])
.controller('MainCtrl', function ($scope, myService, $http, $location) {
    var vm = this;
    vm.pinFormCheck = function () {
        vm.count++;
        if (vm.pinForm.$valid && vm.details.PIN === vm.pin && vm.count <= 2) {
            location.href = "http://localhost:51701/Home/MainMenu";
            $scope.obj = {
                'cid': 'vm.details.CID',
                'name': 'vm.details.Name',
                'pin': 'vm.details.PIN',
                'bal': 'vm.details.Bal',
                'status': 'vm.details.cardStatus'

            };
            console.log(vm.details.Bal);//the correct balance get displayed in console
        } else {
            vm.failPin = true;
        }
    };
})

.controller('CheckCtrl', function ($scope, myService) {
    $scope.data = myService.getObj();
})

.factory('myService', function () {
    var obj = null;
    return {
        getObj: function () {
            return obj;
        },
        setObj: function (value) {
            obj = value;
        }
    }
});

這是傳遞第一個對象的視圖:

<body ng-app="customerApp">
    <div ng-controller="MainCtrl as vm">
        <form name="vm.pinForm">
            <input type="password" ng-model="vm.pin" ng-required="true" />
            <p><button ng-disabled="vm.count >=3" ng-click="vm.pinFormCheck();" ng-init="vm.count=0">Proceed</button></p>
                    </form>
                    ...

這是我需要對象的第二個視圖

<html ng-app="customerApp">
    <body ng-controller="CheckCtrl">
        <div>
            <h1>your balance is {{data.bal}}</h1>
            ....

從資產負債vm.details.Bal從第一個視圖必須出現在data.bal在第二種觀點,但沒有什么是出現。

您可以將vm.details保存在某些工廠中。 然后從此工廠在CheckCtrl獲取它。 AngularJS中的工廠實現單例模式。 因此,保存的數據將一直保留到您的應用存在為止。

您試圖做下一件事myService.getObj(); 但是您沒有將任何內容保存到服務中。

myService注入MainCtrl ,然后將詳細信息保存到其中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM