gpt4 book ai didi

javascript - AngularFire 0.5.0 $on 'change' 事件未正确触发

转载 作者:行者123 更新时间:2023-11-30 17:42:06 25 4
gpt4 key购买 nike

假设我有一组文章,我正试图对其进行分页。

我正在使用 $on("change") 事件来监听 indexlimit 的变化

.controller('articlesCtrl', ["$scope", "$firebase", "$stateParams", function($scope, $firebase, $stateParams) {

var limit = 2;
var index = $stateParams.id;
var articlesRef = new Firebase("https://example.firebaseio.com/articles").startAt(null, index).limit(limit);
var obj = $firebase(articlesRef);

obj.$on("change", function() {
var keys = obj.$getIndex();
index = keys[keys.length-1];
console.log(obj);
});

$scope.update = function(){
limit = limit + 2;
obj = $firebase(articlesRef.startAt(null, index).limit(limit));
}

}]);

我注意到的是 初始加载 $on("change") 事件触发了两次。

每次后续调用更新indexlimit都不会触发$on("change") 事件。

<button type="button" ng-click="update();">Update</button>

最佳答案

每次 $scope.update 触发时,您将 obj 变量分配给一个新的引用。但是,您仅将 obj.$on(change) 附加到原始 obj

这可能可以通过一些实验进行优化;这是让您入门的快速蛮力:

var limit = 2;
var index = $stateParams.id;
var articlesRef = new Firebase("https://example.firebaseio.com/articles");

$scope.update = update;
update(); // initialize

function update(){
limit = limit + 2;
var obj = $firebase(articlesRef.startAt(null, index).limit(limit));
obj.$on("loaded", function() {
var keys = obj.$getIndex();
index = keys[keys.length-1];
console.log(obj);
});
}

关于javascript - AngularFire 0.5.0 $on 'change' 事件未正确触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20859515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com