私は2つのコントローラーを持っています。1 つのコントローラーでは、さまざまなカテゴリやさまざまな週と日のスコープ変数にデータを保存しています。同じ関数は次のとおりです。
$scope.fetchWeekList = function(type) {
$scope.loading = true;
var paramtype = (type == 'mo')?'Mobiles':((type == 'ta')?'Tablets':((type == 'la')?'Laptops':'TVs'));
var weekListUrl = url + "/" + paramtype;
var request = $http({
method: "GET",
url: weekListUrl,
headers: { 'Accept' :'application/json','Content-Type' :'application/json', 'Accept-Language': 'en'}
});
request.success(
function(data) {
$scope.weekList = data.object;
$scope.loading = false;
});
request.error(
function(data, status) {
console.log(status);
$scope.weekList = data || "Request failed";
$scope.loading = false;
});
};
この単一の関数ですべてのカテゴリの週間リストのデータを取得していることに注意してください。
それから私はこれを使用しています:
$scope.$on('fetchSaleDetails', function(event,type) {
$scope.fetchWeekList(type);
}
次に、次のように他のコントローラーでブロードキャストしています。
$rootScope.$broadcast('fecthSaleDetails','mo');
$rootScope.$broadcast('fecthSaleDetails','ta');
$rootScope.$broadcast('fecthSaleDetails','la');
しかし、会社を切り替えると、あるカテゴリの週が別のカテゴリに表示され、会社をもう一度クリックするとデータが変更されます。会社を更新する機能です。
$scope.updateCom = function(corresCom) {
$("html, body").animate({scrollTop: 0 }, "slow");
$rootScope.$broadcast('updateComDetail',corresCom);
$rootScope.$emit('fetchSaleDetails','mo');
$rootScope.$broadcast('fecthSaleDetails','mo');
$rootScope.$broadcast('fecthSaleDetails','ta');
$rootScope.$broadcast('fecthSaleDetails','la');
$scope.selectedCom = corresCom;
};
誰かがここで問題を教えてくれたらありがたいです。私は最善を尽くしましたが、運がありません。
ありがとう。