2017-08-09 38 views
1

我试图来显示使用angularjs对象。但在html中显示为未定义。火力地堡和Angularjs对象范围阵列未定义

app1.controller('ctrl1' , function($scope){ 
    categories = []; 
    var dbRef = firebase.database().ref().child('Categories/'); 
    dbRef.once('value', snap => { 

    snap.forEach(function(childSnap) { 
     //CATEGORY MODEL 
     var category = { 
      name : "", 
      id : "", 

      subCategories: { 
       name: "", 
       id: "" 
      } 

     }; 
     category.id = childSnap.val().id 
     category.name = childSnap.val().name 
     category.subCategories = childSnap.val().subCategories 
     categories.push(category) 
    }) 

    }).then(() => { 
    $scope.allcats = categories; 
    }); 
}); 

和HTML

<div id="nav-aside " class="nav" ng-controller="ctrl1"> 
       {{allcats}} 
      <ul class="nav-aside-list" ng-repeat="categories in allcats"> 
       <li><span></span><a href="#">{{categories.name}}</a></li> 
      </ul> 
      </div> 

这行不通。任何人都可以帮忙? 在此先感谢!

+0

为什么你正在使用类推,为什么不直接$ scope.allcats? –

+0

@GauravSrivastava反正什么也不显示。我试过:( –

+0

做控制台日志右下方categories.push,看是否有数据来 –

回答

0

你的代码改成这样:

app1.controller('ctrl1' , function($scope){ 
     $scope.allcats = []; 
     var dbRef = firebase.database().ref().child('Categories/'); 
     dbRef.once('value', snap => { 

     snap.forEach(function(childSnap) { 
      //CATEGORY MODEL 
      var category = { 
       name : "", 
       id : "", 

       subCategories: { 
        name: "", 
        id: "" 
       } 

      }; 
      category.id = childSnap.val().id 
      category.name = childSnap.val().name 
      category.subCategories = childSnap.val().subCategories 
      $scope.allcats.push(category); 
      $scope.$apply(); 
     }) 

     }).then(() => { 
     console.log($scope.allcats); 
     }); 
    }); 
+0

异步问题。这个作品与控制台,但在HTML文件中没有数据来。因为HTML运行一次和脚本之前,也许 –

+0

上双向@AralbayIssatayev角的作品结合它会自动反映HTML模板的变化不做任何事情。分享一些你的配置代码,可能是你有角的设置是错误的。 –

+0

@AralbayIssatayev我编辑我的答案检查,如果其工作。 –