vs2015 - Javascript / WinJS。 .winControl错误(未定义或空引用)

时间:2015-05-11 12:19:36

标签: javascript winjs visual-studio-2015 vs-2015-preview

我正在学习(尝试)使用新VS2015 RC的JavaScript / WinJS。我创建了一个UAP项目,我想绑定模板。

我看过很少的教程和示例,但是当我自己尝试时,我会使用render属性得到错误。

以下是隐含的代码(JavaScript):

    WinJS.UI.Pages.define("default.html", {
        ready: function (element, options) {
            var templateControl = element.querySelector("#templateControl");

            var obj = { propOne: "Text text text", propTwo: 2 };
            //fails here
            templateControl.winControl.render(obj, 
                element.querySelector("#renderHere"));
        }
    });

代码(HTML):

<div id="renderHere"></div>
    <!--Template-->
<div id="templateControl" data-win-control="WinJS.Binding.Template">
    <p data-win-bind="innerText:propOne"></p>
    <p data-win-bind="innerText:propTwo"></p>
</div>

我在'templateControl'上有一个'click'事件并且工作正常,但是,正如我所说,winControl会将我unfined或null抛出。我很确定这是我,但它都在预览中,因此存在疑问。

由于

1 个答案:

答案 0 :(得分:0)

您不需要使用WinJS模板将数据与HTML绑定,您可以这样做:

<div id="someId">
    <p data-win-bind="innerText: propOne"></p>
    <p data-win-bind="innerText: propTwo"></p>
</div>

JS:

WinJS.UI.Pages.define("default.html", {
    ready: function (element, options) {
        var obj = { propOne: "Text text text", propTwo: 2 };
        WinJS.Binding.processAll(element.querySelector("#someId"), obj);
    }
});

此外,winControl属性在WinJS.UI.processAll()完成时设置,直到那时它未定义。

WinJS模板最适合与不同的控件一起使用,例如List,Repeater等。