我什么时候可以设置 WinJS.UI.设置选项



我有一个自定义控件。我想在呈现控件之前在脚本端设置选项,如何传递选项?

我想通过同一 HTML 页面中的脚本传递选项。

<script type="text/javascript">
        $(document).ready(function () 
{
            var myDiv = document.getElementById("svgChart").winControl;


            WinJS.UI.setOptions(myDiv, {
                seriesList: [{
                    label: "s1",
                    legendEntry: true,
                    data: { x: [1, 2, 3, 4, 5], y: [-5, -3, 1, 7, 2] }
                }, {
                    label: "s2",
                    legendEntry: true,
                    data: { x: [1, 2, 3, 4, 5], y: [-2, -6, 2, 4, 3] }
                }, {
                    label: "s3",
                    legendEntry: true,
                    data: { x: [1, 2, 3, 4, 5], y: [-3, -5, 3, 2, 5] }
                }]
            });
        });
    </script>

但是Wincontrol返回未定义的元素? 在创建控件之前,我什么时候可以设置选项?

将控件与 WinJS 协定一起使用时,有三种方法可以创建控件实例:

  1. 通过从脚本调用构造函数。 例如 var myControl = new Mynamespace.MyControl(element, options)
  2. 通过在 DOM 树上调用WinJS.UI.processAll这是在 VS 中创建新项目时默认模板为您调用的
  3. 通过调用特定 DOM 元素上的WinJS.UI.process

使用 1 时,您可以根据需要清楚地传递选项。

但是,使用其他两个时,可以通过声明方式将选项传递给控件:

<div data-win-control="Mynamespace.MyControl"
     data-win-options="{ aProp: 'val', bProb: 3.14}">
   <!-- your other content --->
</div>

这将是控件构造函数的选项参数。如果您希望将所有这些属性应用于您的实例,则可以使用 WinJS.UI.setOptions(instance, optionsObject) 来设置它们。

在您的特定情况下,看起来您已经有一些标记和一个控件 - 您只需要等到创建控件后才能在其上设置选项。

最新更新