Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript: Angular 2, AngularJS
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
golandy
72 / 72 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
1

Не обновляется view после изменения $scope.model

29.03.2015, 16:26. Просмотров 1418. Ответов 8
Метки нет (Все метки)

Всем привет. У меня такая проблема. Есть страница на которой представлен небольшой список вещей. Код для отображения:

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
flowerApp.controller('Filter', function ($scope, $http) {
    $scope.catalogItems = [];
    
    $scope.filterByCity = function (cityId) {
        $scope.catalogShow = true;
        $scope.selectedCity = cityId;
        var urlString = 'www.test.by/' + cityId;
 
        $http({
            url: urlString,
            method: 'GET'
        }).success(function (data, status, headers, config) {
            $scope.catalogItems = data.Items;
        });
    };
    
    $scope.filterByCategory = function (categoryId) {
        var urlString = 'www.test.by/' + $scope.selectedCity;
        $http({
            url: urlString,
            method: 'GET'
        }).success(function (data, status, headers, config) {
            $scope.catalogItems = data.Items[0]; 
        });
    };
});
Первая функция ($scope.filterByCity ....) обновляет модель и она отрисовывается хорошо, во втором случае ($scope.filterByCategory) функция срабатывает, но ничего не изменяется в отображении. (пробовал $scope.$apply не помогло). Может кто нить знает в чем дело. Заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.03.2015, 16:26
Ответы с готовыми решениями:

Не обновляется view при обновлении $scope
Добрый день столкнулся с проблемой, что после обновления $scope.blog.data, по...

Не обновляется шаблон после смены $scope
$scope.deleteUser = function(user){ $.ajax({ url:...

Отслеживание в директиве изменения значения в scope контроллера
Привет всем участникам, у меня проблема такого свойства - надо мне отследить...

AngularJS 1.6.x: не обновляется views после ng-click с промисом
Все привет! Столкнулся с пробемой, когда не обновляется представление...

Не работает orderBy после изменения атрибута элемента
Здравствуйте! У меня есть коллекция элементов, у которых есть статус. ...

8
sau
1979 / 1590 / 259
Регистрация: 22.07.2011
Сообщений: 5,989
Завершенные тесты: 1
30.03.2015, 00:56 2
Проверьте срабатывает ли вызов success , потому что может быть и fault.
И второе , catalogItems , судя по вашему определению , ожидает массив данных , в то время как data.Items[0] - элемент массива под индексом 0, в первой функции filterByCity вы передаете data.Items целиком .
Ну и , если с выше указанным все в порядке , нужно смотреть что там в разметке.
0
golandy
72 / 72 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
30.03.2015, 00:58  [ТС] 3
success срабатывает

Добавлено через 28 секунд
data.Items[0] я загружал и думал что отобразится только одна запись

Добавлено через 11 секунд
но на самом деле не так

Добавлено через 23 секунды
для отображения данных использую ng-repeat
0
sau
1979 / 1590 / 259
Регистрация: 22.07.2011
Сообщений: 5,989
Завершенные тесты: 1
30.03.2015, 01:00 4
ну так ng-repeat работает с массивом , а вы один элемент передаете. , передавайте тогда через новый массив с одним элементом = [ data.Items[0] ]
1
golandy
72 / 72 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
30.03.2015, 01:04  [ТС] 5
Спасибо, но не проходит. Код вылаживал в открытй доступ http://plnkr.co/edit/HLu5WRO4tGoz6QbKMSXh?p=preview
0
sau
1979 / 1590 / 259
Регистрация: 22.07.2011
Сообщений: 5,989
Завершенные тесты: 1
30.03.2015, 01:11 6
Скрипт работает , не работает ваш сервис , точнее на выбранную категорию он возвращает полный список данных , либо categoryId не передаете.
0
golandy
72 / 72 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
30.03.2015, 01:16  [ТС] 7
а как можно например загрузить одну запись в scope.catlogItems?
0
sau
1979 / 1590 / 259
Регистрация: 22.07.2011
Сообщений: 5,989
Завершенные тесты: 1
30.03.2015, 01:17 8
Лучший ответ Сообщение было отмечено golandy как решение

Решение

Цитата Сообщение от golandy Посмотреть сообщение
а как можно например загрузить одну запись в scope.catlogItems?
Цитата Сообщение от sau Посмотреть сообщение
передавайте тогда через новый массив с одним элементом = [ data.Items[0] ]
по моему ответил.
0
golandy
72 / 72 / 20
Регистрация: 11.01.2014
Сообщений: 252
Записей в блоге: 2
30.03.2015, 01:39  [ТС] 9
пробовал но ничего не изменилось))

Добавлено через 28 секунд
возможно не так указываю. А может ли в выложенном коде исправить?

Добавлено через 19 минут
подскажите в таком случае должна отобразиться одна запись?
$scope.catalogItems = [data.Items[0]];
0
30.03.2015, 01:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2015, 01:39

DataGridView не обновляется таблица после ее изменения
Всем привет! Такая ситуация. Есть две таблицы. По нажатию на кнопку...

Работа с формой (не обновляется после изменения записи)
Добрый день. Ситуация такая: --Имеется таблица, на её основании создана...

TreeView не обновляется после изменения забинженной коллекции
TreeView: <TreeView Name="tvTree" Grid.Row="0" Grid.Column="0"...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru