javascript - AngularJS 无法使用工厂在 Controller 之间共享数据

标签 javascript angularjs angularjs-scope

我尝试使用工厂在两个 Controller 之间共享数据。由于某种原因,两个输入不共享数据。在 AppCtrl Controller 中,我将 Data.FirstName 指定为相等的 lattitude。但是当我到达 PathController 时,我无法读取 Data.FirstName 中存储的值。
谁能告诉我我的代码有什么问题吗?

 .factory('Data', function(){
   return { FirstName: 'jjjj' };
})


          // controller one
.controller('AppCtrl', function($scope, Data, $http, $ionicModal, $timeout) {
     ....
 $scope.mapLocation = function(lattitude, longittude) {

    Data.FirstName = lattitude;
    $scope.Data = Data;
 }
    ....
})


          // controller two
.controller("PathController", [ '$scope', function($scope, Data) {

 $scope.Data = Data;
 console.log(Data.FirstName); // Not getting Data.FirstName

    angular.extend($scope, {
        center: {
         lat: 35.720031000963,
        lng: -87.343068987131,
        zoom: 17
        },
        markers: {
          Campus: {
             lat: 35.728031000963,
             lng: -87.343068987131,
             focus: true,
             draggable: false,
             message: "Building1"
          },
        },
        defaults: {
            scrollWheelZoom: false
        }
    });
}])

最佳答案

像这样更改数据工厂

.factory('Data', function(){
   return { 
       mydata: {
              FirstName: 'jjjj'
            }

 };
})

并分配 如下

Data.mydata.FirstName = lattitude;
$scope.Data = Data.mydata;

关于javascript - AngularJS 无法使用工厂在 Controller 之间共享数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578717/

相关文章:

javascript - 如何在 math.random 上指定范围?

javascript - 乘以两位小数

angularjs - 禁用单个输入 (url) 上的 Angular 表单验证

javascript - AngularJS ng-options 将数据类型添加到选项的值

javascript - 如何将数据添加到 Angular 返回的对象中?

javascript - 在表单中按名称查找 `datalist`?

javascript - 动态创建的 Tablesorter 不起作用

javascript - grunt-ng-constant 目标不能持续工作

javascript - 如何从外部范围解析和分配内部 Controller ?

javascript - 理解 AngularJS 中的 Controller 范围