0
我知道angularjs會執行雙向數據綁定。我有兩個控制器,我想互相交談。我用了一個工廠讓他們相互溝通。在AppCtrl控制器中,我將Data.mydata.buildingName分配給一個名稱。這是我在做什麼:無法在首次更改後使用工廠的控制器之間共享數據
調用AppCtrl,並更改buildingName的值。
然後,當我調用PathController時,它知道buildingName的值已更改並顯示該值。
但是當我回到AppCtrl並再次更改buildingName的值時,PathController似乎並不知道這一點。
任何人都可以告訴我我在這裏做了什麼錯嗎?
//工廠
.factory('Data', function(){
return {
mydata: {
buildingName: 'Campus',
shortName: 'Main',
lattitude: '35.720031000963',
longittude: '-87.343068987131'
}
};
})
//控制器的一個
.controller('AppCtrl', function($scope, Data, $http, $ionicModal, $timeout) {
// map location
$scope.mapLocation = function(name, shortName, lattitude, longittude) {
Data.mydata.buildingName= name;
Data.mydata.shortName= shortName;
Data.mydata.lattitude= lattitude;
Data.mydata.longittude = longittude
$scope.Data = Data.mydata;
console.log("From AppCtrl: " + Data.mydata.buildingName+ " "+ Data.mydata.shortName+" "+ Data.mydata.lattitude + " "+ Data.mydata.longittude);
$scope.modal.hide();
}
})
//控制器配備了兩個
.controller("PathController", [ '$scope', 'Data', function($scope, Data) {
$scope.Data = Data.mydata.buildingName;
var name = Data.mydata.buildingName + " - " + Data.mydata.shortName;
lattitude = Data.mydata.lattitude;
longitude = Data.mydata.longittude;
angular.extend($scope, {
center: {
lat: 35.720031000963,
lng: -87.343068987131,
zoom: 17
},
markers: {
Campus: {
lat: longitude,
lng: lattitude,
focus: true,
draggable: false,
message: name
},
},
});
}])
哪裏是'mapLocation()'從叫什麼名字?如果在角度之外的事件需要通知範圍變化的角度 – charlietfl
@charlietfl地圖位置通過HTML中的onClick調用。 ()如何將範圍更改的角度通知工廠? –