Javascript 角度-在数据加载/更改时启动响应

Javascript 角度-在数据加载/更改时启动响应,javascript,angularjs,Javascript,Angularjs,这是一个相对棱角分明的新手,我正在努力解决大多数应用程序需要的问题: 观察模型/数据,并在模型水合和/或状态发生变化时采取行动。 用例是,当用户登录(用户模型启动)时,一个免费的指令/控制器看到状态变化,然后向后端请求获取该用户对应数据元素的列表(即通知、电子邮件、朋友等) 我已经分析过StackOverflow之类的东西,看起来共享服务是一个不错的选择,但是我从来没有找到关于指令如何监视状态变化的明确答案。一些人建议播放/观看,而另一些人则认为这是一种糟糕的模式 我们的应用程序目前确实使用了一

这是一个相对棱角分明的新手,我正在努力解决大多数应用程序需要的问题:

观察模型/数据,并在模型水合和/或状态发生变化时采取行动。

用例是,当用户登录(用户模型启动)时,一个免费的指令/控制器看到状态变化,然后向后端请求获取该用户对应数据元素的列表(即通知、电子邮件、朋友等)

我已经分析过StackOverflow之类的东西,看起来共享服务是一个不错的选择,但是我从来没有找到关于指令如何监视状态变化的明确答案。一些人建议播放/观看,而另一些人则认为这是一种糟糕的模式

我们的应用程序目前确实使用了一个共享用户服务,其中包含用户的模型表示(数据和简单方法是fullName()

该服务还有一个订阅挂钩,指令可以订阅该挂钩

onLogin: (fn) ->
    $rootScope.$on userService::login, fn
其用途是:

UserService.onLoad(myFunction)
当UserService加载用户时,它会广播UserService::login,并运行所有侦听器。因此,共享UserService的每个人都可以订阅并响应用户登录

这一切都有效。但我认为必须有一种内置的角度方式,指令可以只知道状态的变化,然后执行myFunction(即进行额外的数据调用)


非常感谢您的想法和感受

基本上,您可以为该指令公开一个双向绑定以供查看,但这并不高效。广播事件比观看变量更有效、更健壮。@MuliYulzary感谢您的回复!您的建议将使用某种$scope.$watch()?我也在想,除了角度性能之外,更棒的是,如果有什么东西被破坏了,我会认为手表也会被破坏。但是,正如您所说的,它可能需要占用大量资源才能始终监视各地的变量?除非销毁
$scope
,或者使用$watch返回的值销毁watch实例,否则监视者不会离开。例如:
var stopWatch=$scope.$watch(…)然后某处
秒表()基本上,您可以为该指令公开一个双向绑定以进行监视,但这并不高效。广播事件比观看变量更有效、更健壮。@MuliYulzary感谢您的回复!您的建议将使用某种$scope.$watch()?我也在想,除了角度性能之外,更棒的是,如果有什么东西被破坏了,我会认为手表也会被破坏。但是,正如您所说的,它可能需要占用大量资源才能始终监视各地的变量?除非销毁
$scope
,或者使用$watch返回的值销毁watch实例,否则监视者不会离开。例如:
var stopWatch=$scope.$watch(…)然后某处
秒表()