Lightswitch HTML全局JS文件传递变量

时间:2015-10-29 15:24:20

标签: javascript visual-studio-lightswitch lightswitch-2013

我知道这在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。

  1. 可以这样做吗?
  2. 如果是,我怎样才能将此值输入当前屏幕?
  3. 到目前为止,我已经创建了一个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));

1 个答案:

答案 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
};

以下帖子涵盖了这种方法: -

How to span javascript namespace across multiple files?

JavaScript Module Pattern: In-Depth