Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS可以';t使用factory在控制器之间共享数据_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript AngularJS可以';t使用factory在控制器之间共享数据

Javascript AngularJS可以';t使用factory在控制器之间共享数据,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我尝试使用工厂在两个控制器之间共享数据。由于某些原因,这两个输入不共享数据。在AppCtrl控制器中,我将Data.FirstName分配给相等的latitude。但是当我到达路径控制器时,我无法读取存储在数据中的值。FirstName 有人能告诉我我的代码有什么问题吗 .factory('Data', function(){ return { FirstName: 'jjjj' }; }) // controller one .controller('AppCt

我尝试使用工厂在两个控制器之间共享数据。由于某些原因,这两个输入不共享数据。在AppCtrl控制器中,我将
Data.FirstName
分配给相等的
latitude
。但是当我到达路径控制器时,我无法读取存储在
数据中的值。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;

我想您忘了添加
工厂
作为参数。试试这个


.controller(“PathController”,['$scope',function($scope,Data){

我不确定,但请尝试以下方法:

.service('Data', function(){
    var FirstName = 'jjjj';
    return { FirstName: FirstName };
})

你在任何地方调用mapLocation吗?你能显示位置吗?如果你想从全局范围继承属性,你必须在$scope中使用对象类型。要清楚地理解,请在这里阅读更多内容[Understanding Scopes][1][1]:它应该是
.controller(“PathController”),['$scope',Data',function($scope,Data){
,请修复它