Я пытаюсь использовать $ rootScope. $ WatchCollection в моем коде для обновления данных в контроллере B от контроллера A. но я не получаю в этом никакого успеха. поскольку мое приложение застряло на этом этапе, поэтому я ищу вашу помощь, чтобы я мог узнать, где я ошибаюсь в коде.
контроллер Б: -
app.controller('MenuCtrl', function($scope, LocalStorage, $stateParams,
\t \t $rootScope) {
\t $scope.user = {};
\t $scope.user.userName = LocalStorage.getData("userName");
\t $scope.user.profilePic = LocalStorage.getData("userProfile");
\t $rootScope.$watchCollection(function(n, o) {
\t \t if (n !== o) {
\t \t \t var list = $rootScope.wholecartList;
\t \t \t alert("Length " + list.length);
\t \t }
\t });
});
Контроллер А: -
app.controller('ProductCtrl', function($http, $scope, $ionicPopup, $state,
\t \t $ionicHistory, $ionicLoading, DataService, LocalStorage, $stateParams,
\t \t ProductId, DuplicateCheck, $rootScope) {
\t $scope.productList = DataService.getProducts();
\t $scope.getProductId = function(productId) {
\t \t ProductId.addProductId(productId);
\t \t $state.go("app.products-details");
\t }
\t var cartList = [];
\t $scope.cartListItems = function(product) {
\t \t if (cartList.length > 0) {
\t \t \t if (!DuplicateCheck.getProducts(product.product_id, cartList)) {
\t \t \t \t cartList.push(product);
\t \t \t }
\t \t } else {
\t \t \t cartList.push(product);
\t \t }
\t \t $rootScope.wholecartList = cartList;
\t }
});
Любая помощь будет высоко оценили Спасибо.
Вам нужно добавить еще немного кода - пока не ясно, когда и что называется. Тем не менее, $ rootScope. $ WatchCollection (function (n, o) {if (n! == o) {<< это странно: вы регистрируетесь только при изменении объекта, т. Е. Если я просто добавляю объект в массив - ваш журнал не запускается ... Итак, вы должны использовать обычные $ watch. –
Hey petr, спасибо за ваш ответ, но я действительно не понимаю вашу точку зрения. Вы поняли мой вопрос ... я просто хочу отображать счет в меню html и список будет проходить из productCtrl, этот список содержит количество элементов, выбранных пользователем, поэтому я просто хочу показать счет в моем ui на картинке cart, который находится в файле menu.html. – sid