【问题标题】:dynamically name an array to the `$scope` to be used in ng-repeat将数组动态命名为 `$scope` 以在 ng-repeat 中使用
【发布时间】:2018-01-10 19:44:05
【问题描述】:

我正在尝试像这样动态地将数组命名为$scope

$scope['list_'+id] = $firebaseArray(ref);

现在我想像这样在ng-repeat 中使用它

<li ng-repeat="list in ['list_'+department.$id]">

但这并没有遍历数组,所以我尝试了以下

if(typeof $scope.L == 'undefined'){ $scope.L={}};

$scope.L['list_'+id] = $firebaseArray(ref);

html

<li ng-repeat="list in L['list_'+department.$id]">

这确实适用于 AngularJS,但它在 AngularFire 中的初始化效果不佳


所以我想让 version1 工作,因为我认为它与 angularjs 和 angularfire 很接近。你能明白为什么方法 1 不起作用吗?在我修改会话中的数组之前,你能明白为什么方法 2 不能与 angularfire 一起使用吗??

【问题讨论】:

    标签: javascript angularjs firebase angularfire


    【解决方案1】:

    使用函数在 ng-repeat 中调用动态 var 名称。而不是

    <li ng-repeat="list in ['list_'+department.$id]">
    

    <li ng-repeat="list in get_list(department.$id)">
    

    这个函数看起来像这样

    $scope.get_list = function(id) {
        return $scope['list_'+id];
    }
    

    【讨论】:

    • 使用 $rootScope 作为数据存储是一种糟糕的做法。使用服务
    猜你喜欢
    • 2015-07-22
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多