AngularJS スクリプトのサンプルをいくつか探していたときに見つけましたが、Angular モジュールとコードのディレクティブ部分について頭を悩ませているようには見えません。loadMore() 関数を編集して ReSTful API から json リソースを取得することができましたが、無限スクロールでうまく機能します。私は、空き時間にこの 1 週間、AngularJS を読んだり試したりし始めたばかりです...
フィドルのオリジナル (オリジナルの作者に感謝します): http://jsfiddle.net/vojtajina/U7Bz9/
function Main($scope) {
$scope.items = [];
var counter = 0;
$scope.loadMore = function() {
for (var i = 0; i < 5; i++) {
$scope.items.push({id: counter});
counter += 10;
}
};
$scope.loadMore();
}
angular.module('scroll', []).directive('whenScrolled', function() {
return function(scope, elm, attr) {
var raw = elm[0];
elm.bind('scroll', function() {
if (raw.scrollTop + raw.offsetHeight >= raw.scrollHeight) {
scope.$apply(attr.whenScrolled);
}
});
};
});
私が変更:
function Main($scope, $http) {
$scope.phones = [];
$scope.loadMore = function() {
$http.get('http://www.somewhere.com/api/phones').success(function(data) {
if($scope.phones.length > 0) {
$scope.phones = $scope.phones.concat(data);
}
else {
$scope.phones = data;
}
});
};
$scope.loadMore();
}