没有 $scope 的 AngularFire 三向绑定
AngularFire 3-way-binding without $scope
所以我正在阅读有关三向绑定的 AngularFire 文档,并尝试在没有 $scope 的情况下进行。这是我的控制器:
angular.module('APP', ['firebase']).controller('Ctrl', Ctrl);
Ctrl.$inject = ['$firebaseObject'];
function Ctrl($firebaseObject) {
var vm = this;
var ref = new Firebase('https://testfirebase23.firebaseio.com/');
var syncObj = $firebaseObject(ref);
syncObj.$bindTo(vm, 'data');
}
当我 运行 代码时,我得到这个错误:
TypeError: undefined is not a function
at e (angularfire.min.js:12)
at Object.e.bindTo (angularfire.min.js:12)
at angularfire.min.js:12
at processQueue (angular.js:13248)
at angular.js:13264
at Scope.$eval (angular.js:14466)
at Scope.$digest (angular.js:14282)
at Scope.$apply (angular.js:14571)
at angular.js:16308
at completeOutstandingRequest (angular.js:4924)
我不明白这个错误。有没有办法在没有 $scope 的情况下将对象或数组三向绑定到控制器?
firebase 的 $bindTo
永远不会使用 controllerAs
语法,
您可以通过将 firebase
对象直接分配给任何控制器上下文变量来实现。
代码
var ref = new Firebase('https://testfirebase23.firebaseio.com/');
vm.syncObj = $firebaseObject(ref); //this will ensure your binding will work
参考this SO answer到
我最近开始研究 AngularFire,因为我是新手,在进行研发时我遇到了这个问题:
$bindTo() 对 $scope 有很强的依赖性。
作为参考,你可以看到这个 Firebase 3-way data binding with ControllerAs syntax.
所以我正在阅读有关三向绑定的 AngularFire 文档,并尝试在没有 $scope 的情况下进行。这是我的控制器:
angular.module('APP', ['firebase']).controller('Ctrl', Ctrl);
Ctrl.$inject = ['$firebaseObject'];
function Ctrl($firebaseObject) {
var vm = this;
var ref = new Firebase('https://testfirebase23.firebaseio.com/');
var syncObj = $firebaseObject(ref);
syncObj.$bindTo(vm, 'data');
}
当我 运行 代码时,我得到这个错误:
TypeError: undefined is not a function
at e (angularfire.min.js:12)
at Object.e.bindTo (angularfire.min.js:12)
at angularfire.min.js:12
at processQueue (angular.js:13248)
at angular.js:13264
at Scope.$eval (angular.js:14466)
at Scope.$digest (angular.js:14282)
at Scope.$apply (angular.js:14571)
at angular.js:16308
at completeOutstandingRequest (angular.js:4924)
我不明白这个错误。有没有办法在没有 $scope 的情况下将对象或数组三向绑定到控制器?
$bindTo
永远不会使用 controllerAs
语法,
您可以通过将 firebase
对象直接分配给任何控制器上下文变量来实现。
代码
var ref = new Firebase('https://testfirebase23.firebaseio.com/');
vm.syncObj = $firebaseObject(ref); //this will ensure your binding will work
参考this SO answer到
我最近开始研究 AngularFire,因为我是新手,在进行研发时我遇到了这个问题: $bindTo() 对 $scope 有很强的依赖性。 作为参考,你可以看到这个 Firebase 3-way data binding with ControllerAs syntax.