2014-02-02 13 views
1

По какой-то причине, $ firebase не определена, когда я пытаюсь ее использовать. Я довольно новичок в Angular, поэтому я предполагаю, что есть некоторая отладка в том, как я разбил свои файлы. Я могу заставить весь код работать правильно, если он находится только на одной странице HTML, но я хочу разбить его на все, так как у моего приложения будут разные страницы.

controllers.js

angular.module('myApp.controllers', ['firebase']). 
    controller('StoryController', [function($scope, $firebase) { 
    var storiesRef = new Firebase(FIREBASE_URL); 
    $scope.stories = $firebase(storiesRef); 
    $scope.addStory = function(e) { 
     if (e.keyCode != 13) return; 
     $scope.stories.$add({title: $scope.title, text: $scope.text}); 
     $scope.text = ""; 
    } 
    }]); 

app.js

angular.module('myApp', [ 
    'ngRoute', 
    'myApp.filters', 
    'myApp.services', 
    'myApp.directives', 
    'myApp.controllers' 
]). 
config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/stories', {templateUrl: 'partials/stories.html'}); 
    $routeProvider.when('/addStory', {templateUrl: 'partials/addStory.html', controller: 'StoryController'}); 
    $routeProvider.otherwise({redirectTo: '/'}); 
}]); 

EDIT: Забыл включить эту ошибку.

TypeError: undefined is not a function 
    at new <anonymous> (http://localhost:8000/app/js/controllers.js:8:22) 
    at d (http://localhost:8000/app/lib/angular/angular.min.js:30:452) 
    at Object.instantiate (http://localhost:8000/app/lib/angular/angular.min.js:31:80) 
    at http://localhost:8000/app/lib/angular/angular.min.js:62:23 
    at link (http://localhost:8000/app/lib/angular-route/angular-route.min.js:7:208) 
    at F (http://localhost:8000/app/lib/angular/angular.min.js:49:345) 
    at f (http://localhost:8000/app/lib/angular/angular.min.js:42:399) 
    at http://localhost:8000/app/lib/angular/angular.min.js:42:67 
    at http://localhost:8000/app/lib/angular/angular.min.js:43:299 
    at z (http://localhost:8000/app/lib/angular/angular.min.js:47:23) <div ng-view="" class="ng-scope"> 

И я включил все сценарии, которые у меня есть в конце основного шаблона.

+0

Есть ошибки выхода? Вы включили необходимые сценарии? – Sprottenwels

+0

Просто добавил вывод ошибки, и да, все необходимые скрипты включены. Все работает отлично, когда все в одном гигантском файле. У меня просто проблемы с разбивкой все это, чтобы сделать его управляемым. –

+0

Является ли файл js миниатюрным? –

ответ

6

Вы используете встроенные зависимости, но не определяете их правильно;

controller('StoryController', ['$scope', '$firebase', function($scope, $firebase) { 

Подробнее об инъекции зависимостей здесь; http://docs.angularjs.org/guide/di

+0

Я знал, что это просто! Спасибо! –

Смежные вопросы