Angularjs 对象没有方法$watch
我的angular应用程序有一个小问题(我还在学习中!),我有一个控制器,试图在变量上添加$watch语句。以下是适用的代码片段:Angularjs 对象没有方法$watch,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我的angular应用程序有一个小问题(我还在学习中!),我有一个控制器,试图在变量上添加$watch语句。以下是适用的代码片段: var controllerId = 'header'; angular.module('app').controller(controllerId, ['$rootScope', 'common', 'routes', 'authorization', header]); function header($route, config, route
var controllerId = 'header';
angular.module('app').controller(controllerId,
['$rootScope', 'common', 'routes', 'authorization', header]);
function header($route, config, routes, authorization) {
var vm = this;
vm.$watch(function () { return authorization.currentUser.firstName; },
function (value) {
vm.userName = value;
});
}();
其中授权是我创建的自定义服务。当用户(在另一个控制器上)提供名字时,它将更新名字
我只是不确定我遗漏了什么(关于$watch声明)
谢谢,
Nick
$watch
是$scope
上的一个函数
但您需要考虑一下,在服务中不能监视一个变量。您只能监视分配给$范围的变量。
如果有这样一个变量$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
你可以这样看
$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
$watch
是$scope
上的一个函数
但您需要考虑一下,在服务中不能监视一个变量。您只能监视分配给$范围的变量。
如果有这样一个变量$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
你可以这样看
$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
$watch
是$scope
上的一个函数
但您需要考虑一下,在服务中不能监视一个变量。您只能监视分配给$范围的变量。
如果有这样一个变量$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
你可以这样看
$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
$watch
是$scope
上的一个函数
但您需要考虑一下,在服务中不能监视一个变量。您只能监视分配给$范围的变量。
如果有这样一个变量$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
你可以这样看
$scope.userName="test"
$scope.$watch('userName',function (){
//do your work here..
});
虽然您可以在控制器的作用域上观看某个项目,但这样做通常不是一个好主意,请阅读本文。我建议您从父作用域广播一个事件(并且由于它看起来像是一个用户登录事件,可能在您想要的地方),并且在控制器的作用域上,您可以处理引发的事件 提出一项活动:
$rootScope.$broadcast('eventName', {prop1: 'some data'});
并收听broadcase事件:
$scope.$on('eventName', function (event, data) {
var temp = data.prop1;
});
虽然您可以在控制器的作用域上观看某个项目,但这样做通常不是一个好主意,请阅读本文。我建议您从父作用域广播一个事件(并且由于它看起来像是一个用户登录事件,可能在您想要的地方),并且在控制器的作用域上,您可以处理引发的事件 提出一项活动:
$rootScope.$broadcast('eventName', {prop1: 'some data'});
并收听broadcase事件:
$scope.$on('eventName', function (event, data) {
var temp = data.prop1;
});
虽然您可以在控制器的作用域上观看某个项目,但这样做通常不是一个好主意,请阅读本文。我建议您从父作用域广播一个事件(并且由于它看起来像是一个用户登录事件,可能在您想要的地方),并且在控制器的作用域上,您可以处理引发的事件 提出一项活动:
$rootScope.$broadcast('eventName', {prop1: 'some data'});
并收听broadcase事件:
$scope.$on('eventName', function (event, data) {
var temp = data.prop1;
});
虽然您可以在控制器的作用域上观看某个项目,但这样做通常不是一个好主意,请阅读本文。我建议您从父作用域广播一个事件(并且由于它看起来像是一个用户登录事件,可能在您想要的地方),并且在控制器的作用域上,您可以处理引发的事件 提出一项活动:
$rootScope.$broadcast('eventName', {prop1: 'some data'});
并收听broadcase事件:
$scope.$on('eventName', function (event, data) {
var temp = data.prop1;
});
我相信这就是我所寻找的。明天当我有机会的时候,我会研究这个问题,如果答案是正确的,我会把它标记为答案。这个解决方案对你有帮助吗?我相信这就是我所寻找的。明天当我有机会的时候,我会研究这个问题,如果答案是正确的,我会把它标记为答案。这个解决方案对你有帮助吗?我相信这就是我要寻找的。明天当我有机会的时候,我会研究这个问题,如果答案正确,我会把它标记为答案。这个解决方案对你有帮助吗?我相信这就是我要寻找的。明天当我有机会的时候,我会研究这个问题,如果答案正确,我会把它标记为答案。这个解决方案对你有帮助吗?