【问题标题】:Reloading page on modal close in AngularJS在AngularJS中模式关闭时重新加载页面
【发布时间】:2015-04-29 15:25:39
【问题描述】:

来自 angularjs 新手的问题。

这是一个两部分的问题。

我有一个页面,它有一个下拉菜单(使用网络服务填充)、一个文本框和“开始”按钮。按钮 ng-click 导致下拉列表和文本框的值点击返回 JSON 的 Web 服务,我用它来显示网格(ID、名称)。网格也有每一行的删除按钮。所有这些都在一个控制器中,比如 controllerA。

单击删除按钮时,我会打开一个模态http://angular-ui.github.io/bootstrap/,其中包含“是”和“否”按钮。此模式位于不同的控制器中,例如 controllerB。

第一季度。如何在控制器 B 中获取 id 的值(用户想要删除的行)?我正在使用我在 controllerA 中设置并进入 controllerB 的全局 var 变量,但我认为这不是正确的方法?

第二季度。当用户在模态(controllerB)上单击“是”时,如何重新加载页面并显示刷新的网格(controllerA)-如何获取 controllerB 中下拉列表和文本框的值以及如何在 controllerB 中调用 controllerA 的 ng-click 函数?

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    Q1:查看this page for an example,了解如何将信息传递到模式对话框。基本上你需要在调用 $modal.open 时指定 resolve 属性。

    Q2:再次查看示例。在 ControllerA 中,您可以调用 modalInstance.result.then(...) 并提供一个函数,该函数将在模型对话框关闭时被调用。在该函数中,您可以进行任何您希望的 Web 服务调用,当 Web 服务调用返回时,您的成功函数可以更新填充数据网格的 $scope 数组变量。

    【讨论】:

      【解决方案2】:

      使用 AngularJS factoryservice 跨不同控制器使用方法。您不应该使用全局变量,您可以考虑使用 $rootScope 来使事物在更广泛的范围内可用。

      此处的文档:https://docs.angularjs.org/guide/services & https://docs.angularjs.org/api/ng/service/$rootScope

      重新加载页面的一种方法是从控制器调用 ng-click 上的重新渲染函数,以便它调用服务器以获取最新信息(如果您还没有函数/最初呈现页面的方法,否则在 ng-click 中再次调用该方法以重新呈现),这样您就可以在单击时执行多个功能,包括重新呈现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-20
        • 1970-01-01
        • 2016-03-13
        • 2015-12-17
        • 1970-01-01
        相关资源
        最近更新 更多