我什么时候可以设置WinJS.UI。 setoptions?

时间:2013-01-24 10:08:00

标签: winjs

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

我想在同一个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返回未定义的元素?什么时候可以在创建控件之前设置选项?

1 个答案:

答案 0 :(得分:3)

当使用具有WinJS合约的控件时,有三种方法可以创建控件实例:

  1. 通过脚本调用构造函数。例如。 var myControl = new Mynamespace.MyControl(element, options)
  2. 通过在DOM树上调用WinJS.UI.processAll在VS中创建新项目时默认模板为您调用
  3. 通过在特定DOM元素上调用WinJS.UI.process
  4. 使用1时,您可以根据需要清楚地传递选项。

    但是,当使用其他两个时,您可以声明性地将选项传递给控件:

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

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

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