【发布时间】: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