Я пытаюсь изучить AngularJS, и есть эта вещь, которую я не понимаю, которая кажется, что все интернет решил с помощью $scope.$apply
, но я уже использую его, и он ничего не делает.
В принципе, я использую API Twitter для получения временной шкалы, и когда мы прокручиваем снизу, он загружает больше твитов. Эта часть работает, я использую factory, чтобы сделать это, но я могу отобразить прием объекта в консоли, у меня здесь нет проблем.
У меня есть такой вид, чтобы отображать данные:
<div class='timeline' ng-controller='TimelineCtrl' is-scrolled='loadData()'>
<div class='tweet' ng-repeat='p in posts'>
<img class='portrait' src='{{p.user.profile_image_url}}' />
<p>{{p.text}}</p>
<p class='date'>{{p.created_at}}</p>
</div>
</div>
Мой контроллер выглядит следующим образом:
$scope.posts = [];
// Load the original tweets list
TwitterAPI.timeline($scope.count, function(data) {
$scope.$apply(function() {
$scope.maxId = data[data.length-1].id;
$scope.sinceId = data[0].id;
$scope.posts.push(data);
});
});
достоверны.
То, что я вообще не понимаю, и заставить меня подумать, что это очень легко решить, и я просто не вижу его, заключается в том, что если я использую '= data' вместо 'push (data)' представление обновляется. Даже когда я загружаю больше твитов, если я использую '=', просмотр обновляется (с заменяемым содержимым, конечно, это не то, что я хочу).
Примечание: maxId, fromId и count инициализированы ранее, я не помещал его туда, так как я не думаю, что это важно.