我创建了一个自定义 WinJS 控件。
<div id="hub" class="fullScreen" data-win-control="WinJS.UI.Hub">
<div data-win-control="WinJS.UI.HubSection">
<div id="weather-today" data-win-control="RTBF.UI.WeatherView">
</div>
</div>
</div>
当我进入同一 PageControl 的“ready”方法时,winControl 属性未定义。另一方面,“集线器”具有有效的 winControl 属性。我还看到在就绪方法之后调用了控件的构造函数。这怎么可能?
最佳答案
使用 data-win-control 不会自动设置 winControl 属性。 HTML 属性只是告诉 WinJS.UI.process[All] 构造函数的名称,其他所有事情都由构造函数来完成。
所有 WinJS 控件都遵循的模式(您可以在其 ui.js 文件中看到)如下所示,假设 element 是根 div:
element.winControl = this;
this.element = element;
还建议您通过实现 dispose 方法、设置 this._dispose = false 并添加“win-disposable”CSS 类来使控件成为“一次性”控件。 (或使用 WinJS.UI.markDisposable。)
有关所有详细信息,请参阅我的免费电子书《使用 HTML、CSS 和 JavaScript 编写 Windows 应用商店应用程序》第二版 ( http://aka.ms/BrockschmidtBook2 ) 的第 5 章,名为“自定义控件”的最后一节。
关于javascript - WinJS自定义控件: winControl undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23367077/