2015-12-31 5 views
3

Я очень новичок в Firebase и всей веб-разработке spiel.Заселяющий datatable с Firebase и Angular

Я пытаюсь заполнить datatable на моем веб-сайте данными из моей Firebase.

This is the datatable in bootstrap

Ниже приводится app.js

var app = angular.module("aocgApp", ["firebase"]); 
app.controller("dataController", ["$scope", "$firebaseArray", 
function($scope, $firebaseArray) { 
    var national = new Firebase("https://aoconsultinggroup.firebaseio.com/National"); 
    $scope.schools = $firebaseArray(national); 
}]); 

и, наконец, HTML-код:

<div class="panel-body"> 
<div ng-app="aocgApp" ng-controller="dataController"> 
<div class="table-responsive"> 
    <table class="table"> 
     <thead> 
      <tr> 
       <th>School Name</th> 
       <th>SATs</th> 
       <th>GPA</th> 
       <th>Tuition</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr ng-repeat="school in schools"> 
       <td>{{ schools.name }}</td> 
       <td>{{ schools.sat24l }}</td> 
       <td>{{ schools.gpa }}</td> 
       <td>{{ schools.tuition }}</td> 
      </tr> 
     </tbody> 
    </table> 
</div> 
</div> 
</div> 

спасибо за вашу помощь.

EDIT: Ниже приводится структура данных

aoconsultinggroup 
    L Business 
    L CS 
    L Engineering 
    L National 
    L 0 
     L name 
     L SAT 
     L GPA 
     L tuition 
    L 1 
     L name 
     L SAT 
     L GPA 
     L tuition 
    L 2 
     L name 
     L SAT 
     L GPA 
     L tuition 
    L 3 
     L name 
     L SAT 
     L GPA 
     L tuition 
+0

Здесь есть как минимум два очевидных опечатки. Прежде чем просить других отлаживать ваш код, выполните должную осмотрительность. «школы» внутри обратного вызова '$ loaded' (который вам не нужен) должны быть $ scope.schools, а' ng-repeat' должен относиться к «школе в школах». – Kato

+0

, о котором позаботились задолго до того, как вы прокомментировали. Извините, что я забыл исправить это в оригинальном посте. Даже после этого, хотя Като, данные не заполняются, что еще может быть проблемой? Я борется с этим в течение 2 дней без успеха или приводит –

ответ

3

У вас есть имя переменной неправильно в вашем шаблоне, это schools не national:

<tr ng-repeat="school in schools"> 
    <td>{{ school.name }}</td> 
    <td>{{ school.sat24l }}</td> 
    <td>{{ school.gpa }}</td> 
    <td>{{ school.tuition }}</td> 
</tr> 

В контроллере, вам не нужно используйте $loaded(). Когда данные будут загружены, $firebaseArray() вызовет цикл $digest.

Все, что вам нужно это:

var national = new Firebase("<your-firebase-app>/National"); 
$scope.schools = $firebaseArray(national); 

Вот что делает school in schools работу в шаблоне. Переменная schools указана из $scope контроллера, а в шаблоне создается переменная school.

+0

. Кричит, я играл с именем переменной в html. но спасибо вам большое! я попробую это сейчас и вернусь к теме! –

+0

Я что-то не хватает? потому что он все еще не работает. У меня была функция, которую я скопировал и вложил в учебник Firebase, чтобы проверить установленное соединение с Firebase. И у него нет никаких проблем с подключением. Я так потерялся ... –

+0

Можете ли вы четко сказать, что не работает? Кроме того, если вы можете опубликовать структуру своей базы данных, которая будет полезна. –