0

ユーザーが画面を下にスクロールして表示される dom 要素の量を制限するときに、コントローラーから ng-repeat の要素を削除しようとしています。

これが私が試したことです

$scope.someStuff = someobject..

delete $scope.friendsViewObject[SomeIndex];

そして、成功しません。オブジェクト内の要素を単独で削除すると、dom は更新されません。

そして、これはコントローラーを呼び出すディレクティブです。

<div myDirective="loadMyController()" ></div>
.directive('myDirective', function() {
    return function(scope, elm, attr) {
        var raw = elm[0];
        elm.bind('scroll', function() {
            if (((raw.scrollHeight - raw.offsetHeight) - raw.scrollTop) < 10 ) {
                scope.$apply(attr.friendsWhenScrolled);
            }
        });
    }
});
4

2 に答える 2

0

属性の代わりに$apply、DOM を変更し、Angular にそれを認識させたい場合は、変更を でラップし$applyます。

したがって、コードは次のようになります。

.directive('myDirective', function() {
    return function(scope, elm, attr) {
        var raw = elm[0];
        elm.bind('scroll', function() {

            if (((raw.scrollHeight - raw.offsetHeight) - raw.scrollTop) < 10 ) {

                scope.$apply(function() {

                   // delete here
                });
            }

        });
    }
});
于 2013-08-15T13:34:29.497 に答える