MVC为局部视图制作了一个全局js变量
MVC making a global js variable for partial view
好的,这是场景。我在mvc应用程序中有一个部分视图,它被渲染为剑道弹出窗口内容。现在,我需要创建一个变量(它是数组),我可以从这个局部视图脚本中的任何方法访问它,但它应该在这个弹出窗口之外是不可见的。原因是我需要在其中存储这个特定弹出窗口的数据,并且可能有几个这样的弹出窗口。我怎样才能做到这一点?
当您声明您的窗口时,您可以为其设置一个变量,如下所示:
var myWindow = $("#window");
myWindow[0].myVariable = [1,2,3];
为了得到更好的答案,你应该尽可能让你的问题变得通用。假设知道剑道,意味着只有熟悉剑道的人才能回答(至少很容易),而这实际上是因为你在使用剑道。最好是说"我有一个模式窗口,可以显示在同一页面上呈现的HTML(即不通过iframe或其他方式)。"
无论如何,您只需要使用某种数组或对象来保存弹出窗口的所有变量。您绝对不应该依赖JavaScriptwindow
对象,因为存储在那里的任何东西都是真正全局的,可能会被页面上运行的任何其他脚本覆盖或篡改。您应该为您的应用程序创建一个名称空间,如果您还没有这样做的话,并将任何内容存储在该名称空间中:
var MyAwesomeNamespace = MyAwesomeNamespace || {};
MyAwesomeNamespace.foo = "bar";
名字并不重要;只需选择一些世界上其他人不太可能使用的独特的东西,比如你的组织名称。
一旦你有了这个,就像我说的,你就会想要使用一个数组或一个对象。你选择哪一个取决于你想要如何处理它。对于数组,你需要通过一些整数索引来挑选值。例如,如果您的弹出窗口是通过for循环呈现的,您可以为它们分配一个包含该索引的id或data-*属性,然后使用该属性从数组中选择正确的项。
如果事情比这更随机,你可能只想在弹出窗口上使用一个对象和键,比如它的id:
MyAwesomeNamespace.PopupVariables[popup.getAttribute(id)];
相关文章:
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- NodeJS:一个全局EventEmitter或每个模块它'他自己的
- Ember.js-定义一个全局函数,该函数可以向操作返回值
- (文档).ready是一个全局范围
- MVC为局部视图制作了一个全局js变量
- 使用 grunt 在 javascript 文件中“嵌入”一个全局变量
- HTML元素在JavaScript中表示为一个全局变量,How
- 这是一个全局变量吗?
- CoffeeScript 在 'for v in values' 中创建一个全局变量 'v',导致事件中的错误引用
- 在 Jquery 中为语言切换器分配一个全局变量
- 在 javascript 中创建一个全局库,同时保存状态和行为
- 从函数内部声明一个全局变量
- 在 TypeScript 中使用外部模块声明一个全局变量
- 我是否正在创建一个全局变量
- 将 React 模板放在一个全局变量的属性中
- AJAX和一个全局变量不起作用,我错了吗
- Javascript-删除最后一个全局修饰符不起作用
- JQuery可以't用两个值组成一个全局字符串
- 多个局部变量声明与一个全局变量声明
- 在Drupal.behaviors中创建一个全局JS变量更改值,并在另一个函数中调用它