サービスから別のコントローラの変数をどのように見ることができるのだろうかと思っていました。私は2つのコントローラと1つのサービスを持っています。コントローラ1が行う変数の変更は、サービス内の変数に変更がある場合、コントローラ2が時々チェックする必要のあるサービスに配置されます。しかし、私はそれを適切に見ることができません。ここに私のコードです。角度の異なるコントローラからの変数の監視
コントローラ1
app.controller('ChooseFleetController',function($scope,shareDataService){
$scope.$watch('ItineraryDetails', function(newValue, oldValue){
shareDataService.setData(newValue);
}, true);
}
コントローラ2
app.controller('ItineraryReservationController',function($scope,shareDataService){
$scope.$watch(function() {
return shareDataService.ItineraryDetails;
}, function (newVal) {
console.log(newVal);
});
});
あなたはshared service
を使用して直接object
を試すことができます
app.service('shareDataService', function() {
var ItineraryDetails = {};
var setData = function(data) {
ItineraryDetails = data;
}
var getData = function (data) {
return ItineraryDetails;
}
return {
setData: setData,
getData: getData
};
});
あなたのコードはあなたのコンセプトに合致しません。理想的には、サービスを使用して2つのコントローラ間で状態を共有することになります。あなたが遭遇したことは、それがあなたがそれを望むように働く原因ではないのですか? – Makoto
はい、コントローラー2の更新された値を使用して、[日程詳細]オブジェクトを取得できません。@Makoto – drake24
それをトレースするとどうなりますか?デバッグウィンドウで何が起きているのでしょうか? – Makoto