あなたはディレクティブからバインドされた変数を変更すると、あなたはそれを更新する必要がある角度に通知する必要があります。
(function() {
'use strict';
angular
.module('myProject.common')
.directive('asScrollTop', asScrollTop);
function asScrollTop() {
var directive = {
restrict: 'A',
scope: { chatMessagesOfUser: '=chatMessagesOfUser' },
link: link
};
return directive;
////////////
function link(scope, element, attr) {
console.log(element);
element.on('scroll', function() {
if(element[0].scrollTop <= 0) {
scope.chatMessagesOfUser.splice(1, 4);
}
});
}
}
})();
ディレクティブの使用法は、このようなものです。 $apply()
でこれを行うことができます。
(function() {
'use strict';
angular
.module('myProject.common')
.directive('asScrollTop', asScrollTop);
function asScrollTop() {
var directive = {
restrict: 'A',
scope: { chatMessagesOfUser: '=' },
link: link
};
return directive;
////////////
function link(scope, element, attr) {
console.log(element);
element.on('scroll', function() {
if(element[0].scrollTop <= 0) {
scope.chatMessagesOfUser.splice(1, 4);
scope.$apply();
}
});
}
}
})();
はまた、あなたがディレクティブに2ウェイ結合性であるスコープ変数を割り当てるときに、それは同じ名前だ場合、あなたは=
後に変数名を必要としないことに注意してください。
私はあなたの問題でPlnkrを作ったが、実現した(http://plnkr.co/edit/fc2it2ZN7Bjxs9EJRJB1)私はあなたが何をしようとしているのか分からない。あなたのng-repeatはいつですか?ユーザーがリストコンテナをスクロールし始めるときにリストをスプライスしようとしていますか?もしそうなら、その目的は何ですか? – mcranston18
ng-repeatはブラウザビューでリストを表示します。ユーザーが配列内の一部の項目を上にスクロールした場合は削除する必要があります。したがって、ng-repeatの前にアイテムの削除は行われません。ありがとうたくさん – quma
上記のplnkrを編集して、plnkrのhtmlがあなたのアプリのhtmlにマッチするようにできますか?私はあなたのリストでどこを反復しているのかはまだ分かりません。 – mcranston18