在两个js文件之间共享全局变量

2024-01-27

我正在使用两个 js 文件并在钛应用程序中在它们之间共享变量。在我的主 app.js 中,我有 3 个与表中每一行关联的变量。我有一个事件侦听器,用于单击一行打开模态视图,该视图的组件位于单独的 js 文件中。我的三个变量如下,在单击事件中我收到了 3 个变量和 3 个全局变量的警报。

var titleText = titleInRow.text;
var artistText=artistInRow.text;

Ti.App.myGlobalSongVar = titleText;
Ti.App.myGlobalArtistVar = artistText;

var rowNumber=e.row.name;
Ti.App.myGlobalRowNumber= rowNumber;

alert("titleText is: "+titleText+" and /n artistText is "+artistText+ " and /n row number is "+rowNumber +"/n TiAppmyGlobalSongVar is "+Ti.App.myGlobalSongVar+ " /n TiAppmyGlobalArtistVar is "+Ti.App.myGlobalArtistVar);

这些都返回了正确的结果。然后在我的第二个 js 文件中,我也有以下警报:

alert("\n TiAppmyGlobalSongVar in modal is "+Ti.App.myGlobalSongVar+ " \n TiAppmyGlobalArtistVar in modal is "+Ti.App.myGlobalArtistVar + "TiAppmyGlobalRowNumber in modal is "+Ti.App.myGlobalRowNumber);

在第二个js文件中,我第一次单击一行时,我的第二个警报的变量全部未定义。我第二次单击时,它们都已定义,但有时是错误的。它似乎给出了我第一次单击的未定义行的变量结果。希望这个问题很清楚。我究竟做错了什么?

更新请阅读!!:最后,经过尝试:

Titanium.API.titleText = titleText;
Titanium.API.artistText = artistText;

and

Ti.App.Properties.setString('globalTitleText', titleText);
Ti.App.Properties.setString('globalArtistText', artistText);

and

Ti.App.myGlobalSongVar = titleText;
Ti.App.myGlobalArtistVar = artistText;

(第二次全部有效,但第一次未定义), 唯一有效的是在我的表事件监听器中触发此事件:

Ti.App.fireEvent('myCustomEvent', {
          myTitleText: titleText,
          myArtistText: artistText
        });

并将其放在我的第二个 js 文件中:

var globalTitleText;
var globalArtistText;
    Ti.App.addEventListener('myCustomEvent', function(event) {
            globalTitleText=event.myTitleText;
            globalTitleText=event.myTitleText;
            //Ti.App.globalTitleText=event.myTitleText;
            //Ti.App.globalArtistText=event.myArtistText;
            alert('You sent me: '+event.myTitleText+" and "+event.myArtistText);
    });

//However I can't use it here in my second js file (outside the custom event listener) as it is undefined. 

谁能帮我解决最后一点问题吗? 我仍然不知道为什么其他方法不起作用。我之前在不同的环境中使用过它们,它们确实有效,但在这个特定的情况下却不起作用!


下面的代码是在事件监听器中吗?

var titleText = titleInRow.text;
var artistText=artistInRow.text;

Ti.App.myGlobalSongVar = titleText;
Ti.App.myGlobalArtistVar = artistText;

var rowNumber=e.row.name;
Ti.App.myGlobalRowNumber= rowNumber;

因为要使变量成为全局变量,您需要在 eventListener 函数之外声明它们。就像是:

var rowNumber;
tableView.addEventListener('click',function(e) {
    rowNumber = e.rowIndex;
}

rowNumber如果在 App.js 中声明,则将是全局的,而:

tableView.addEventListener('click',function(e) {
    var rowNumber;
    rowNumber = e.rowIndex;
}

won't.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在两个js文件之间共享全局变量 的相关文章

  • 有没有办法在javascript中代理(拦截)一个类的所有方法?

    我希望能够在类本身的构造函数内代理类的所有方法 class Boy constructor proxy logic do something before each call of all methods inside class like
  • JavaScript 画布内存问题

    我在用着getImageData putImageData在 HTML5 画布上能够操作图片 我的问题是浏览器似乎从来没有释放任何内存 http jonelf posterous com lite gc men for sent 直到我关闭
  • 在 React 组件中等待异步函数并显示 Spinner

    初学者在这里 尝试从服务器获取一些数据并在获取后将其显示在我的反应组件中 但是 我在将异步函数集成到我的反应组件中时遇到了麻烦 import React useState from react import request from gra
  • 无需重定向的 HTML 页面提交

    有没有什么方法可以在不使用ajax的情况下提交html表单而无需从当前页面重定向 你可以设置一个target 为您form 这样您就可以将表单提交到新选项卡 target blank 或一个小的 隐藏的iframe target nameo
  • MVC 3 Razor _ViewStart 中的公共变量

    我正在 MVC 3 附带的新 Razor 引擎上构建一个网站 并且喜欢新语法 但是 我对使用公共属性 常量感到不知所措 我知道使用 WebForms 我们可以在代码后面添加公共属性 public string ImageFolder get
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • document.write 在同一页面上显示内容。

    我对 javascript document write 方法有疑问 大多数情况下 当我使用 document write 时 它会向我显示在不同页面中使用该方法编写的内容 例如 如果我写这样的命令 document write Hello
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • 如何将React JS状态保存到本地存储中

    我不知道如何将 React js 状态存储到本地存储中 import React Component from react import App css import auth createUserProfileDocument from
  • 等待异步 grunt 任务完成

    我收到了 grunt 设置 其中一个新任务应该执行 grunt task run 已经存在的任务 要执行的任务是异步的 新任务应该等待异步任务完成 执行此操作的首选方法是什么 grunt 已经涵盖了这一点 你应该将你的任务声明为异步任务 并
  • 使用 eval 时不会受到 XSS 威胁

    我正在制作 不是现在 但我仍然对这个感到好奇 一款使用 HTML5 和 JS 的游戏 我想要的是人们可以插入自定义脚本 但要安全 function executeCustomJS code eval code bad 当然这段代码非常糟糕
  • 文件缓存:查询字符串与上次修改时间?

    我正在研究缓存网站资源的方法 并注意到大多数与我类似的网站都使用查询字符串来覆盖缓存 例如 css style css v 124942823 后来 我注意到每当我保存 style css 文件时 最后修改的标头都会 更新 使得查询字符串变
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • 将默认搜索文本添加到搜索框 html

    我正在努力将 搜索 文本添加到搜索框 我正在努力实现 onfocus 消失文本 And onblur 重新出现文本 到目前为止 我已经实现了这一点 但我必须将其硬编码为 html eg
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • JavaScript setTimeout 和更改系统时间会导致问题

    我注意到如果我设置setTimeout未来1分钟 然后将我的系统时间更改为过去5分钟 setTimeout功能将在 6 分钟后触发 我这样做是因为我想看看夏令时系统时钟更改期间会发生什么 我的 JavaScript 网页使用setTimeo
  • D3 强制布局,较大的节点聚集在中心

    我一直在修改将用于标签云的强制布局 每个标签都由一个
  • Firebase 身份验证和实时应用程序数据库如何保护自身安全?

    从一般开发的角度来看 我很好奇如何保护在线资源的访问 我们使用以下 Firebase 配置参数初始化 Web 应用程序 apikey authdomain projectid databaseurl messagesenderid 服务器如
  • 如何计算一行中Flexbox项目的数量?

    网格是使用 CSS flexbox 实现的 Example http jsbin com jumosicasi edit html css js output 本示例中的行数为 4 因为我出于演示目的固定了容器宽度 但是 实际上 它可以根据

随机推荐

  • Visual Studio 2019 - 包未正确加载

    最近 每当我打开 Visual Studio 2019 时 我就开始收到错误 该错误总是指出 包未正确加载 或 未知错误 之类的内容 此错误反复出现并影响我安装的所有版本的 Visual Studio 2015 2017 和 2019 甚至
  • 如何使用C++在Linux中获取硬件信息

    我需要获取 Win 和 nix 机器上的硬盘规格 我用了
  • 使用 Paperclip 和 AWS S3 自定义 URL

    我们使用 Paperclip 和 aws sdk gem 在 Rails 应用程序中存储和显示图像 class User lt ActiveRecord Base has attached file image storage s3 s3
  • 为什么我需要强制 git 同步我的远程存储库?

    我有一个从远程存储库克隆的本地存储库 全部在一台计算机上 我想确保我的远程存储库从本地存储库中选择了更改 所以我做了一个git push origin 我将工作目录更改为远程存储库 更改已传播到日志文件 即执行git log显示了更改 但我
  • Rails - Rake 错误:库未加载

    我读过几乎所有关于 Rails 错误的文章 寻找解决我的问题的方法 虽然我已经解决了一些问题 但我还想出了更多 我升级到Snow Leopard 并根据 Agile Development with Rails 一书安装了RVM和Rails
  • 不使用排序函数将从数组接收的字符按字母顺序排列?

    所以 基本上 我用 java 创建了一个算法 从字符串中获取字符并计算其频率 现在 我需要按字母顺序打印它 例如 频率 3 d 频率 1 l 频率 5 有什么建议么 这是我到目前为止所拥有的 int charCounts String us
  • Hammer.js 平移事件仅适用于触摸设备,不适用于桌面计算机单击+拖动

    我使用这个标准代码进行平移 捏合 1 使用 Hammer js var mc new Hammer document body mc add new Hammer Pinch threshold 0 recognizeWith mc get
  • MS Access 在两个日期之间选择?

    我已经搜索过 但所有结果都无法帮助我理解 我需要选择 18 23 岁人员的姓名 所以我的尝试是 WHERE People Birth Between Now Year 18 And Now Year 23 我做错了什么 some date
  • 是什么导致 Firefox 在通过 POST 方法提交表单后发出 GET 请求?

    当通过 POST 方法提交表单时 是什么导致 Firefox 在 POST 请求后跟随 GET 请求 GET 方法发送到与 POST 方法相同的 url 但不带请求参数 如果将表单方法更改为 GET 则会产生两个相同的 GET 请求 这是
  • 在 MYSQL Workbench 中声明语法错误

    我如何在我的中声明和设置变量MYSQL WORKBENCH在存储过程中 它给出了一个语法错误 例如unexpected Declare sym在第一行有一个十字符号 我正在使用以下代码 Declare StartDate datetime
  • 如何知道int*数组的结尾?

    我正在制作一个动态数组int 数据类型使用malloc 但问题是 如何知道数组结束呢 没有相当于 0 for int 数据类型 那么 如何做到这一点呢 将大小作为函数的输出参数传递 C 不像其他一些语言那样管理数组长度 你可以考虑一个结构
  • iOS 配置文件未安装在一台特定设备上

    我最近分发了一个用于测试的应用程序 测试团队在安装该应用程序时遇到了问题 更具体地说是与该应用程序关联的配置文件 他们使用的是 iPhone 4 iOS 5 1 1 并收到 由于未知错误而无法安装配置文件 我习惯于在尝试安装的配置文件中未注
  • Java 8:为什么我无法将此二进制字符串解析为 long?

    长话短说 我正在用 Java 搞一些基本的遗传算法 我当时用的是long存储我的基因 但我在调试时使用二进制字符串以提高可读性 我遇到了一个奇怪的情况 我无法解析一些以 a 开头的二进制字符串1 我不知道是否总是如此 但似乎与长度为 64
  • 引导程序中的填充

    我使用引导程序 div class container div class row div class span6 h2 Welcome h2 p Hello and welcome to my website p div div clas
  • 我正在尝试使用 JDBC 从 Oracle 表中提取 XMLTYPE 列,但遇到一些问题

    我正在尝试使用 JDBC 从 Oracle 表中提取 XMLTYPE 列 我有疑问 select XML FILE FROM TABLE NAME 当我在 Oracle SQL Developer 中运行查询时 它完全正常地返回所有 XML
  • 如何在窗口关闭时设置断点或阻止开发人员工具窗口关闭?

    我在 FireFox 弹出窗口的单独窗口中打开了开发人员工具 问题是 表单提交后 该弹出窗口会由 JavaScript 自动关闭 并且我无法禁用 JavaScript 本身 因为它需要 JavaScript 来提交表单 我搜索了一种在窗口关
  • 如何将 GGRAPH 包安装到最新的 R (v.3.3.2)

    我对 R 非常陌生 我需要 ggraph 库 但无法从 rstudio 控制台安装它 这是一条消息 install packages 中的警告 包 ggraph 不可用 对于 R 版本 3 3 2 还有其他安装方式吗 看起来这个图书馆仍然存
  • 查询拦截 - 处置诊断侦听器

    我们正在使用DiagnosticListeners以便修改 EF Core 生成的 SQL 命令文本 问题是我们的侦听器需要根据通过 HttpRequests 进入我们的 Api 的一些用户特定数据来修改 SQL 命令 我们当前的解决方案非
  • 通用枚举 JPA AttributeConverter 实现

    我试图解决的问题 我正在尝试为 Hibernate 实现枚举映射 到目前为止 我已经研究了可用的选项 并且 Enumerated EnumType ORDINAL and Enumerated EnumType STRING 似乎不足以满足
  • 在两个js文件之间共享全局变量

    我正在使用两个 js 文件并在钛应用程序中在它们之间共享变量 在我的主 app js 中 我有 3 个与表中每一行关联的变量 我有一个事件侦听器 用于单击一行打开模态视图 该视图的组件位于单独的 js 文件中 我的三个变量如下 在单击事件中