我有一个自定义控件。我想在控件呈现之前在脚本端设置选项如何传递选项?
我想在同一个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返回未定义的元素?什么时候可以在创建控件之前设置选项?
答案 0 :(得分:3)
当使用具有WinJS合约的控件时,有三种方法可以创建控件实例:
var myControl = new Mynamespace.MyControl(element, options)
WinJS.UI.processAll
。在VS中创建新项目时默认模板为您调用 WinJS.UI.process
使用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)
进行设置。
在您的特定情况下,看起来您已经有了一些标记和控件 - 您只需要等到控件创建后再设置选项。