我知道这在C#中是如何工作的,但在javascript中并没有那么多,所以我希望它是相似的。
使用Javascript,我可以创建一个带有变量(DateTime dt = DateTime.ParseExact(StartDate, "MM/dd/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
dt.ToString("dd/MM/yyyy HH:mm:ss");
)的master.js,我可以在与项目相关的所有其他javascript文件中引用它吗?
所以就Lightswitch HTML而言,每个屏幕都能够拥有一个js文件,并且我希望能够在屏幕上检索这个defaultValue。
到目前为止,我已经创建了一个main.js文件,添加了这个函数:
var defaultValue = "1234"
并在default.htm文件中声明了js文件:
function getDefaultValue(value) {
var value = "1234";
return value;
}
我知道这是我如何使用其他JavaScript文件,如blob.js,lsWires.js等...
在screen.js中使用此方法不起作用,因此其中一个阶段导致错误......
<script type="text/javascript" src="Scripts/main.js"></script>
理想情况下,我想使用此默认值来设置值,即window.alert(main.getDefaultValue(value));
答案 0 :(得分:1)
这当然是可行的,您在default.htm中使用的脚本声明似乎是正确的。
但是,由于您所描述的方法创建了一个全局getDefaultValue函数(添加到全局窗口对象上下文),因此您不会指定一个主命名空间&#39;像你在c#中的前缀。
相反,您不是使用main.getDefaultValue调用函数,而是在LightSwitch屏幕中使用以下方法:
myapp.BrowseProducts.created = function (screen) {
window.alert(window.getDefaultValue("123")); // This will display 1234
// As window is a global object, its window prefix can be omitted e.g.
alert(getDefaultValue("123")); // This will display 1234
};
或者,如果你想在main.js中定义一个全局的defaultValue变量(可能是你想要实现的方法),你的main.js文件中会有以下代码:
var defaultValue = "5678";
然后,您可以在LightSwitch屏幕中按如下方式访问它:
myapp.BrowseProducts.created = function (screen) {
alert(defaultValue); // This will display 5678
defaultValue = "Hello World";
alert(defaultValue); // This will now display Hello World
};
另外,如果您想在主命名空间中组织功能/属性,可以在main.js文件中使用以下类型的方法: -
var main = (function (ns) {
ns.getDefaultValue = function (value) {
var value = "1234";
return value;
};
ns.defaultValue = "5678";
return ns;
})(main || {});
然后在LightSwitch屏幕中调用以下内容: -
myapp.BrowseProducts.created = function (screen) {
alert(main.getDefaultValue("123")); // This will display 1234
alert(main.defaultValue); // This will display 5678
main.defaultValue = "Hello World";
alert(main.defaultValue); // This will now display Hello World
};
以下帖子涵盖了这种方法: -