我是JQuery / JavaScript的新手,需要为以下案例启动:
通知(警报消息)对新用户有用,但对有经验的用户来说很烦人。所以我想让我的用户根据用户设置显示或不显示这些消息。 为了不必在每个警报周围建立相同的条件(从用户设置派生),我想写一个函数
我知道如何围绕警报建立条件,但无法使其全局可访问:
var isConfirmActiv = "@UserPrincipal.ConfirmActiv";
var myMessage ="Bla bla";
if (isConfirmActiv.toLowerCase() === "true") {
alert(myMessage);
}
我想在视图的脚本部分使用它:
(var isConfirmActiv = "@UserPrincipal.ConfirmActiv";) ... somewhere?
myAlert("Bla bla", isConfirmActiv);
在脚本文件中:
function myAlert(myMessage, isConfirmActiv){
if (isConfirmActiv.toLowerCase() === "true") {
alert(myMessage);
}
}
答案 0 :(得分:2)
您必须在全局范围(函数外部)中定义此var:
https://www.w3schools.com/js/js_scope.asp
例如:
var isConfirmActiv = "@UserPrincipal.ConfirmActiv";
function myAlert(string myMessage){
if (isConfirmActiv.toLowerCase() === "true") {
return alert(myMessage);
}
}
答案 1 :(得分:1)
您可以创建javascript文件并将其命名为Utility。例如。
将您的函数和全局变量isConfirmActiv放在该文件中,并将js文件链接到所有视图或主布局。
var isConfirmActiv;
function myAlert(myMessage, isConfirmActiv){
if (isConfirmActiv.toLowerCase() === "true") {
alert(myMessage);
}
}
- set directly the global defined isConfirmActiv value in every View in the script section (Note: don't redefine it, its already defined globally in javascript file)
isConfirmActiv = "@UserPrincipal.ConfirmActiv";
- Now you can call the function from anywhere in your project.
function myAlert(myMessage, isConfirmActiv){
if (isConfirmActiv.toLowerCase() === "true") {
alert(myMessage);
}
}