AngularFire暂停/恢复同步

时间:2014-02-24 16:32:55

标签: javascript angularjs firebase angularfire

有没有人能够使用Angular fire暂停/恢复同步?

Firebase / AngularJS(Angularfire)新功能。

我尝试将对象归零并在点击按钮时重新初始化它们但它没有做任何事情,

感谢您的任何意见。

史蒂夫

按要求编写的代码

var app = angular.module("imageanalyser-app", ["firebase"]);


var ref = null;
function MyController($scope, $firebase) {
    ref = new Firebase("...");
    $scope.messages = $firebase(ref.endAt().limit(100));

}
function resumeSync() {
    $("#btnResume").click(function() {
        ref = new Firebase("...");
    });
}

function stopSync() {
    $("#btnStop").click(function () {
        ref = null;
    });
}

<div class="row">
<div class="col-md-10 col-md-offset-1">
    <div ng-app="imageanalyser-app">
        <div id="links" class="container-fluid" ng-controller="MyController">

            <div ng-repeat="msg in messages" class="gallery-item-container">
                <a href="{{msg.highResUrl}}"  data-gallery>
                    <img ng-src="{{msg.Source}}" height="20" width="20"  style="position: absolute"/>
                    <img ng-src="{{msg.imgUrl}}" class="gallery-item-image" />
                </a>
                <div class="gallery-item-tags" ng-repeat="tag in msg.tags">{{tag}}</div>

            </div>
        </div>
    </div>
</div>

2 个答案:

答案 0 :(得分:2)

您正在更新ref,但从不更改$scope.messages。 ng-repeat基于$scope.messages,因此它也不会改变!

要使其按照您的意愿运行,您需要影响消息变量。

答案 1 :(得分:0)

这对我有用,使用$ off()来停止同步,然后重新初始化它。

var fireBaseRef;
var synced = true;
function MyController($scope, $firebase) {
    fireBaseRef = new Firebase("......");
    $scope.messages = $firebase(fireBaseRef.endAt().limit(100));

    jQuery("#btnToggleState").click(function () {
        if (synced) {
            $scope.messages.$off();
            synced = false;
        } else {
            $scope.messages = $firebase(fireBaseRef.endAt().limit(100));
            synced = true;
        }

    });

}