gpt4 book ai didi

javascript - MVC 部分 View 清除脚本 Jquery Ajax

转载 作者:数据小太阳 更新时间:2023-10-29 04:20:02 25 4
gpt4 key购买 nike

项目:Asp.NET Core 2.1

正在处理一个仪表板项目,它有一个侧导航,它被分成子侧等。在右侧有一个“主视图”,其中应该加载部分,所以当部分被选中时,它应该呈现在右侧。

我已经完成了所有这些,但是当我有 2 个不同的 View 和一些相同的 javascript 时,比如一个变量,然后我得到一个重新声明的错误,这是因为最后加载的脚本仍然被缓存。任何人都知道如何解决这个问题?

部分的变量也在文件中声明并且没有分开,也尝试过分开,但这没有用。

考虑不加载此 Ajax,但我喜欢它的流畅性。

例子

View 1:

<div>
<h1>Hello View1</h1>
<script>
const myVar1 = 'Hello';
</script>
<div>

View 2:

<div>
<h6>Hello View2</h6>
<script>
const myVar1 = 'Hello';
</script>
</div>

错误:重新声明 myVar1。

提前致谢!

最佳答案

您需要的是命名空间。 JavaScript 不使用命名空间关键字。取而代之的是闭包。您无法控制变量名称,尤其是当它不是您的代码时。试试这个:

例子

View 1:

<div>
<h1>Hello View1</h1>
<script>
var cl1 = (function(e){
const myVar1 = 'closure 1'; // No public access.
return {
myVar1:myVar1, // Assign public access to cl1.myVar1.
vname:function(){return myVar1; } // or assign it as a getter.
};
})();
</script>
<div>

View 2:

<div>
<h6>Hello View2</h6>
<script>
var cl2 = (function(){
const myVar1 = 'closure 2';
return {
myVar1:myVar1,
vname:function(){return myVar1; }
};
})();
</script>
</div>

测试输出:

  <script>
console.log('cl1.myVar1', cl1.myVar1, cl1.vname());
console.log('cl2.myVar1', cl2.myVar1, cl2.vname());
</script>

结果是:

cl1.myVar1 closure 1 closure 1
cl2.myVar1 closure 2 closure 2

关于javascript - MVC 部分 View 清除脚本 Jquery Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52608840/

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