im пытается узнать Угловой. Вот что я пытаюсь сделать:
Я создаю приложение, которое показывает мне города. Когда я нажимаю на город, я хочу увидеть список всех моих любимых городов.
Использование кнопки «Show-List» с функцией ng-click, но требует нажатия кнопки.
Вот мой подход для получения его сделать автоматический:
Я хочу, чтобы список в моем DOM автоматически обновляется по изменению списка.
$scope.$watch('updatedList', function() {
// CHECK IF WORKS
console.log($scope.updatedList);
// APPLY TO DOM
$timeout(function(){
$scope.$apply(function() {
$scope.watchList = $scope.updatedList;
});
}, 1000)
});
Консоль не показывает ошибку и выдает correc значения:
Объект {city.3: "Герат", city.7: "Haag", city.10: "Тилбург" ......}
В моем DIV является следующее:.
<ul>
<li ng-repeat="y in updatedList">{{ y }}</li>
</ul>
<ul>
<li ng-repeat="a in watchList">{{ a }}</li>
</ul>
Сначала для NG-Click-версии (которая работает по щелчку) второй за $ рамки $ смотреть
Извините за множество вопросов, но я действительно борюсь с Angular-Docs.
EDIT:
Функция, которая добавляет Citys к списку:
$scope.addToList = function(name,id) {
var cityToAdd = name;
var cityToAddID = id;
// ADD A CITY TO THE COOKIE -> WORKS
$cookies.put('city.' + cityToAddID, cityToAdd);
$scope.newList = $cookies.getAll();
$scope.addToListMessage = cityToAdd + " wurde hinzugefügt";
// Show short INFONOTICE
window.setTimeout(function() {
$scope.$apply(function() {
$scope.addToListMessage = "";
});
}, 1000);
// Update the List
$scope.updateList();
};
Второй Functions -> получает значения из печений и помещает их в массив:
$scope.updateList = function() {
var allCitys = $cookies.getAll();
// PUT ALL INTO AN ARRAY -> WORKS
var favouritesFromCookie = [];
$.each(allCitys, function(index, value) {
if (index.indexOf('city.') == 0) { favouritesFromCookie.push(value) }
});
// PUT THE ARRAY OF CITYS INTO A SCOPE_VARIABLE
$scope.updatedList = favouritesFromCookie;
};
Это было бы яснее, если бы вы включили больше своего кода. Откуда идет список городов? Получаете ли вы это из HTTP-запроса? Немного больше информации поможет здесь. – DWDuck
не нужно '$ .apply()' inside '$ timeout()', поскольку он будет внутренне вызывать '. $()'. Что изменит 'newList'? Это часть нужно сосредоточиться на – charlietfl
Хорошо, я добавлю код за секунду ... – Dyon