两次使用 $bindTo 时遇到问题

Have a trouble with using $bindTo twice

我是 AngularJs 的新手,现在我正在尝试使用 Firebase。

这是我的 Firebase 数据:

pavlovdog
|
 ---facebook: "facebook.pavlovdog.com"
|
 ---twitter: "@pavlovdoggy"

还有我的 JavaScript 代码:

angular.module('starter.controllers', ['firebase'])

.controller('DashCtrl', ['$scope','$firebaseObject','$firebaseArray',
function($scope,$firebaseObject,$firebaseArray) {

    // Syncing to firebase
    var ref = new Firebase("https://#####.firebaseio.com/pavlovdog/");
    var syncObject = $firebaseArray(ref); 
    syncObject.$bindTo($scope, "contacts");
}])

.controller('NewListCtrl',['$scope', '$firebaseObject','$firebaseArray', 
    function($firebaseObject,$firebaseArray,$scope){
        var ref = new Firebase("https://#####.firebaseio.com/pavlovdog/");
        var syncObject = $firebaseArray(ref);
        syncObject.$bindTo($scope,"newUser");

}])

DashCtrl 中一切正常,我可以使用 $scope.contacts。但在 NewListCtrl 中,模拟代码不起作用。有什么问题?

我在 DashCtrl 之后使用 NewListCtrl,也许这很重要

从表面上看,第一个问题是 NewListCtrl.

的依赖注入语法

指定依赖项列表时,顺序很重要。所以这一行:

.controller('NewListCtrl',['$scope', '$firebaseObject','$firebaseArray',

说明 Angular 应该在创建控制器时将三个项目注入到您的控制器中,并且按照特定的顺序。

但是请注意,您的函数参数在此控制器中的顺序不同:

function($firebaseObject,$firebaseArray,$scope)

这肯定会导致您的代码出现问题。你认为的$scope其实是$firebaseArray,以此类推。