将一个控制器的变量值用于角度js中的另一个控制器

时间:2015-08-24 09:36:30

标签: javascript angularjs angularjs-directive angularjs-scope

我正在使用Angular js,我需要将变量值从一个控制器发送到另一个控制器,就像全局变量概念一样,但我现在无法做到这一点所以请建议如何解决这个问题。 我正在接受他的js代码供参考。这是牙齿数,我想使用的值从指数.js到TeethClick.js

我正在尝试从下面给出的index.js发送teethnumber的值

 (function () {
    appModule.controller('tenant.views.dentalchart.index', [
        '$scope', '$modal', 'abp.services.app.patients',
        function ($scope,$modal,patientsService) {
            var vm = this;
            var teethnumber = "";
 vm.openTeethClick = function (teeth) {
                teethnumber = teeth;
                console.log(teethnumber);
                var modalInstance = $modal.open({

                    templateUrl: '~/app/tenant/views/dentalchart/TeethClick.cshtml',
                    controller: 'tenant.views.dentalchart.TeethClick as vm',
                    backdrop: 'static'
                });

                modalInstance.result.then(function () {
                    getPatient();
                });

            };
 }
    ]);
})();

我想将牙齿编号访问下面的控制器teethClick.js

(function () {
    appModule.controller('tenant.views.dentalchart.TeethClick', [
        '$scope', '$modalInstance', 'abp.services.app.patients',
        function ($scope, $modalInstance, patientsService) {
            var vm = this;
            //var teethnumber = $scope.teethnumber;
            vm.saving = false;
            vm.patient = {};
            var teethnumber = 1;
            vm.save = function () {
                alert(vm.patient);
                vm.saving = true;
                patientsService.addPatient(vm.patient).success(function () {
                    abp.notify.info(app.localize('SavedSuccessfully'));
                    $modalInstance.close();
                }).finally(function () {
                    vm.saving = false;
                });
            };
           vm.getDefaultSurfaceID = function (teeth) {
               var surfaceDefault = teeth;
               console.log(surfaceDefault);
               if (teethnumber != null && surfaceDefault != null)
               {

               }
            };
            vm.cancel = function () {
                $modalInstance.dismiss();
            };
        }
    ]);
})();

请建议如何解决我的这个问题

1 个答案:

答案 0 :(得分:0)

创建一个角度service以同步所需的数据。 有一个简单的例子here

angular.module('myApp', [])
    .controller('Ctrl1', function ($scope, App) {
        $scope.localData1 = App.data;
    })
    .controller('Ctrl2', function ($scope, App) {
        $scope.localData2 = App.data;
    })
    .factory('App', function () {
        var sharedObj = {
            data : {
                status: 'Good'
            }
        };

        return sharedObj;
    });