2014-04-29 15 views
1

我創建了一個自定義的WinJS控件。WinJS自定義控件:winControl undefined

<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屬性。我也看到,我的控制器的contstructor被調用,在ready方法之後。這怎麼可能?

回答

0

設置winControl屬性不是通過使用data-win-control自動完成的。 HTML屬性簡單地告訴WinJS.UI.process [All]構造函數的名字,並且由構造函數來完成其他任何事情。

所有WinJS控件跟隨,你可以看到它的ui.js文件的模式,如下所示,假設元素是根格:

element.winControl = this; 
this.element = element; 

它也建議你做通過實施處置方法來控制「一次性」,設置this._disposed = false,並添加「win-disposable」CSS類。 (或使用WinJS.UI.markDisposable。)

有關所有的詳細信息,請參閱我的免費電子書第5章,使用HTML,CSS和JavaScript編寫Windows應用商店應用程序,第2版(http://aka.ms/BrockschmidtBook2)命名爲「自定義控件」。