我正在学习(尝试)使用新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抛出。我很确定这是我,但它都在预览中,因此存在疑问。
由于
答案 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等。