因此,我有一个例程需要与在应用程序初始化时检索到的用户数据一起运行。
我的主页控制器检查存储中是否有令牌(已登录的用户),然后如果$ scope.currentUser已经存在,则运行例程,或者在AJAX调用返回该数据时对其进行监视。
但是$ watch回调在初始化后再也不会触发。
这是Feed控制器代码
if (sessionStorage.getItem('token'))
{
if ($scope.currentUser) {getItems()}
else {$scope.$watch('currentUser', popFeed()) }
}
function delayForUser()
{
if ($scope.currentUser) {popFeed()}
}
和应用程序控制器代码
if (sessionStorage.getItem('token') && sessionStorage != 'null')
{
UserSvc.getUser()
.then(function (response)
{
$scope.currentUser = response.data
})
假设您可以currentUser
从两个控制器中看到(您提到它们是不同的),则需要在上传递一个函数$watch
,而不是立即执行它(使用(),这是该函数的结果):
$scope.$watch('currentUser', function(newValue) {
popFeed();
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句