javascript - 如何在 AngularJS 中将变量从一个函数传递到另一个函数?

标签 javascript angularjs

$scope.openModal = function (page, size) {
    console.log(page); // this is working

    $uibModal.open({
        animation: true,
        templateUrl: 'app/pages/servers/newRole.html',
        size: size,
        resolve: {
            items: function () {
                return $scope.items;
            }
        }
     });
 };

 $scope.hello = function() {
     console.log(page); // need value of page from above function

     var btn = document.createElement("BUTTON");
     var t = document.createTextNode("ABC");

     btn.classList.add("btn-primary", 'btn-xs', 'btn');
     btn.appendChild(t);

     document.getElementById('Id1').appendChild(btn);
 }

我尝试使用全局变量并将页面分配给它,但它说未定义

我可以通过在 openModal 中调用 hello(page) 来访问此变量,但这不起作用,因为它会调用 hello() > 当不需要时。

我有两个按钮,单击“btn1”时调用 openModal 函数,并在此按钮上传递页面参数,然后该模态“btn2”内有另一个按钮,单击 btn2 时调用 hello()。

最佳答案

Tl;Dr:使用您的范围,或使用服务。

如果这些方法位于同一个 Controller 中:

您应该能够通过变量传递它:

  • 初始化它:$scope.data = {};
  • 向其中推送一些数据:$scope.data = everything;$scope.data.field = everything
  • 在您的函数中进一步使用它:$scope.data ...\\执行任何操作

如果不是:

您可以使用AngularJS service 。完成数据处理后,您可以将其保存到您的服务中,然后稍后再取回。将其视为您想要的任何数据的 getter/setter。示例:


一个虚拟的 AngularJS 服务:

var service = angular.module('yourService', [])
    .factory('$yourService', function () {
        var yourdata = {};

        return  {
            setData: function(data)    {
                yourdata = data;
            },

            getData: function() {
                return data;
            }
        };
    });

return service;

然后,请确保将其注入(inject) Controller 中。在您的第一个函数中,您可以将您的服务调用为: $yourService.setData(anyData);

并在第二个函数中取回数据:$yourService.getData();

关于javascript - 如何在 AngularJS 中将变量从一个函数传递到另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38327326/

相关文章:

javascript - ng样式 : Error saying "Missing expected }"

javascript - javascript 正则表达式 (|) 管道运算符是否与 (||) 逻辑运算符相同?

javascript - 如何清除图像以便重绘?

javascript - 扩展正则表达式

javascript - Windows 窗体 Web 浏览器控件不将 "do"解释为标识符

javascript - $sanitize 自定义白名单

javascript - 将动态值绑定(bind)到 ng-repeat 内的进度条

javascript - AngularJS:基于链接输入字段的自定义验证

javascript - 解决数据库中转义字符的最佳方法

javascript - 简单的 Angular 应用程序无法正常工作