![](/img/trans.png)
[英]Best practice pass the simple variable value to another scope in angularjs?
[英]Pass value of scope to another scope in AngularJS
我有一个控制器,想将一个范围的值传递给另一个。
app.controller("ChatController", function($scope, $firebaseArray, $timeout, $firebaseAuth, $window) {
var ref = firebase.database().ref().child("messages");
var auth = $firebaseAuth();
$scope.messages = $firebaseArray(ref);
$scope.sendMessage = function() {
//var firebaseUser = $scope.firebaseUser;
$scope.messages.$add({
text: $scope.newMessageText,
current_time: new Date().toJSON()
});
$scope.newMessageText = null;
};
$scope.login = function() {
$scope.firebaseUser = null;
$scope.error = null;
auth.$signInWithPopup('google').then(function(firebaseUser) {
$scope.firebaseUser = firebaseUser; //access this to the sendMessage scope
console.log(firebaseUser.user);
}).catch(function(error) {
$scope.error = error;
});
};
});
在我上方,我有sendMessage
和login
scope
。 我想将$scope.firebaseUser
的值$scope.firebaseUser
给login
scope
。 那可能吗?
我认为您混合了Javascript词法作用域和Angular范围。 在Angular中,作用域位于控制器级别。 这意味着控制器中的所有内容都可以访问控制器的作用域。 反过来,这意味着您可以只在sendMessage
函数中使用$scope.firebaseUser
,如下所示:
$scope.sendMessage = function() {
var firebaseUser = $scope.firebaseUser;
$scope.messages.$add({
text: $scope.newMessageText,
current_time: new Date().toJSON()
});
$scope.newMessageText = null;
};
你有尝试过吗? 您遇到任何问题了吗?
请在这里查看更多详细信息
我在其中进行了一些编辑,请尝试一下,让我知道,我在等待。 在这种情况下,我已经使用$ rootScope作为角度的全局变量存在。
注意:我通过预测您现有的代码完全正确来编写此代码。
app.controller(“ ChatController”,function($ scope,$ firebaseArray,$ timeout,$ firebaseAuth,$ window,$ rootScope){var ref = firebase.database()。ref()。child(“ messages”); var auth = $ firebaseAuth(); $ rootScope.firebaseUser = null; $ scope.messages = $ firebaseArray(ref);
$scope.sendMessage = function() {
var firebaseUser = $rootScope.firebaseUser;
$scope.messages.$add({
text: $scope.newMessageText,
current_time: new Date().toJSON()
});
$scope.newMessageText = null;
};
$scope.login = function() {
$scope.firebaseUser = null;
$scope.error = null;
auth.$signInWithPopup('google').then(function(firebaseUser) {
$scope.firebaseUser = firebaseUser; //access this to the sendMessage scope
$rootScope.firebaseUser = firebaseUser.user;
console.log(firebaseUser.user);
}).catch(function(error) {
$scope.error = error;
});
};
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.