【问题标题】:AngularJS can't share data between controllers using factoryAngularJS 无法使用工厂在控制器之间共享数据
【发布时间】:2015-09-15 16:26:21
【问题描述】:

我尝试使用工厂在两个控制器之间共享数据。出于某种原因,两个输入不共享数据。在 AppCtrl 控制器中,我将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
        }
    });
}])

【问题讨论】:

  • 您是否在任何地方调用 mapLocation?你能显示在哪里吗?
  • 如果你想从全局范围继承一个属性,你必须在 $scope 中使用一个对象类型。要清楚地理解,请在此处阅读更多内容 [Understanding-Scopes][1] [1]:@ 987654321@

标签: javascript angularjs angularjs-scope


【解决方案1】:

像这样改变数据工厂

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

 };
})

并分配 如下

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

【讨论】:

    【解决方案2】:

    我认为您忘记添加 factory 作为参数。试试这个

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

    【讨论】:

    • 应该是.controller("PathController", [ '$scope', 'Data', function($scope, Data) {,请修复
    【解决方案3】:

    我不确定,但试试这个:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-15
      • 2014-03-22
      • 1970-01-01
      相关资源
      最近更新 更多