gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:21:58 25 4
gpt4 key购买 nike

$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);
}

我试过使用一个全局变量并将页面分配给它,但它说的是 undefined

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

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

最佳答案

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

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

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

  • 初始化它:$scope.data = {};
  • 向其中推送一些数据:$scope.data = anything;$scope.data.field = anything
  • 在您的函数中进一步使用它:$scope.data ...\\Do anything

如果他们不是:

您可以使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com