Я довольно новичок в Angular и столкнулся с проблемой, переполнение google и stack не принесло ничего полезного, я полагаю, что в основном из-за того, что я даже не знаю, что искать для. Итак, вот моя проблема в надежде, что вы поможете мне решить. У меня есть следующий код: JSFiddleОчистить общедоступную переменную в Angular Service
HTML
<button ng-click="reload()">Reload</button>
<button ng-click="loadMore()">Load More</button>
<ul>
<li ng-repeat="item in list">{{ item }}</li>
</ul>
JavaScript
var app = angular.module('app', []);
app.controller('mainCtrl', ['$scope', 'mainSvr', function ($scope, mainSvr) {
$scope.list = mainSvr.list;
$scope.reload = mainSvr.reload;
$scope.loadMore = mainSvr.loadMore;
}]);
app.service('mainSvr', function() {
// private
var self = this;
// public
this.list = [];
this.reload = function() {
for (var i = 0; i < 5; i++) {
self.list.push(i * 10);
}
};
this.loadMore = function() {
var listLength = self.list.length;
for (var i = listLength; i < listLength + 5; i++) {
self.list.push(i * 10);
}
}
});
Когда я нажимаю на перезагрузку Я хочу, чтобы очистить и заново заполнить список (так его снова показывает 0-40), как мне это сделать? Я пробовал:
this.reload = function() {
self.list = [];
for (var i = 0; i < 5; i++) {
self.list.push(i * 10);
}
};
Но это не сработало, ничего не показывают вообще. Я использую отладчик и точку прерывания и вижу, что список фактически очищается и повторно заполняется, так как пользовательский интерфейс не поднимает его, когда я делаю self.list = []; Пожалуйста, помогите мне понять, что я сделал неправильно.