angularjs - 如何让发起的Controller知道范围值已经改变

标签 angularjs ionic-framework

我是 AngularJS 的新手。我有一个登录 Controller ,它验证用户详细信息,并在成功调用服务时将用户详细信息保存在 localStorage 中,并将详细信息分配给同一服务中的变量,该变量用于从各种 View 检索用户详细信息。登录后,当我将用户重定向到之前启动的另一个 View (已访问页面)时,我将看不到新更新的用户详细信息,直到刷新页面( View ),这意味着 View 不知道我的用户变量的值服务已经改变。请问我如何让它知道并更改 View 范围值。

最佳答案

在 Controller 中创建一个方法来处理刷新,即:

$scope.refresh = function() {
  // Do things that load data here, probably with promises
};

然后使用它在第一次查看时开始加载 Controller ,即调用 Controller 中的刷新函数:

$scope.refresh();

然后您可以灵活地执行诸如分配事件以强制刷新数据之类的操作,例如(在 Controller 中):

$rootScope.$on("app.refresh.foo", function() {
  $scope.refresh();
});

然后在其他地方,广播如下:

$rootScope.$broadcast("app.refresh.foo"); 

如果 View 已加载,它将调用刷新函数。

此方法的一大优点是您可以更加灵活地向刷新功能添加所需的内容。您不必设置单独的观察者。

关于angularjs - 如何让发起的Controller知道范围值已经改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30325030/

相关文章:

php - 从 mysql 数据库中获取数据到 Ionic 应用程序

google-chrome - 如何使用 uglifyjs2 和 Ionic 加载 sourcemaps?

javascript - 强制 AngularJS 指令链接外部摘要循环

javascript - Datepicker 在 ionic ios 中不起作用

angularjs - Angular JS ng-repeat嵌套数组

angularjs - Angular $http.get 从选择框中更改

angular - ionic 2 : How to make text selectable?

javascript - ionic 1 当应用程序运行时检查互联网

angular - 错误: Cannot find a differ supporting object '[object Object]' of type 'object' . NgFor仅支持绑定(bind)到Iterables,例如数组。嵌套 JSON

javascript - AngularJS - 触发 $watch/$observe 监听器