我是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
中,simular代码不起作用。问题是什么?
我在NewListCtrl
之后立即使用DashCtrl
,这可能很重要
答案 0 :(得分:3)
表面上,第一个问题是NewListCtrl
的依赖注入语法。
指定依赖项列表时,顺序很重要。所以这一行:
.controller('NewListCtrl',['$scope', '$firebaseObject','$firebaseArray',
声明Angular应该在创建控制器时按照特定顺序向控制器注入三个项目。
但请注意,您的函数参数在此控制器中的顺序不同:
function($firebaseObject,$firebaseArray,$scope)
这肯定会导致代码中的内容变得混乱。您认为$scope
的确是$firebaseArray
,依此类推。