按元素引用子元素

时间:2017-07-15 03:08:55

标签: angularjs firebase firebase-realtime-database angularfire

我有以下div:

<div ng-repeat="state in Home.overlaySettings.data.games[0].events[0].states">
    <div class="col-xs-12 col-md-4 noPadding" ng-repeat="feature in state.features" ng-show="state.name == Home.overlaySettings.data.games[0].events[0].state">
        <div class="form-group">
            <button 
                type="button" 
                class="btn largeButton" 
                ng-class="{'btn-success':feature.enabled == true,'btn-danger':feature.enabled == false}" 
                ng-click="feature.child('enabled').set(!feature.enabled);">
                    {{feature.name}}
            </button> 
        </div>
    </div>
</div>

以上代码适用于firebase。我想要做的就是当你点击按钮时将值设置为true,然后再次单击它再返回true。

我的问题是我无法弄清楚如何保存价值。该功能属于许多功能,因此我无法从根元素中搜索它。

要显示Home.OverlaySettings是什么,请查看此函数:

function OverlaySettings(fbURL, $firebase, $q) {
    var fb = {"data":null,"ref":null,"ready":$q.defer()};
    initFB();
    function initFB() {
        fb.ref = new Firebase(fbURL);
        fb.data = $firebase(fb.ref).$asObject();
        fb.data.$loaded(  
            function(data) {
                fb.ready.resolve()
            }
        );
    }
    return function() {
        return fb;
    }
}

如何保存值?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下内容。

Home.overlaySettings.data.games[0].events[0].states[$parent.$index].features[$index].child('enabled').set(!Home.overlaySettings.data.games[0].events[0].states[$parent.$index].features[$index].enabled);

或者您可以在控制器中完成这项工作。

相关问题