Използване на функцията select() за идентифициране на обвързващ шаблон в HTML

Не успях да намеря никаква документация за функцията select(), която видях да се използва за идентифициране на обвързващи шаблони в приложенията на магазина на Windows 8, нито успях да я намеря дефинирана във файловете WinJS base.js или ui.js. Изглежда, че работи като нормален CSS селектор за идентифициране на itemTemplate:

<div id="listViewTemplate" data-win-control="WinJS.Binding.Template">
    <h1 data-win-bind="textContent: firstName"></h1>
</div>

<div id="listViewDiv" data-win-control="WinJS.UI.ListView"
    data-win-options="{itemTemplate: select('#listViewTemplate')}">   <==== HERE <====
</div>

Когато идентифицирате шаблон за обвързване чрез неговия id, използването на функцията select() изглежда не е задължително. Въпреки това, ако се използва името на неговия клас, select() изглежда е задължително.

Къде е документирана или дефинирана функцията select()?


person RSW    schedule 22.12.2012    source източник
comment
Уверете се, че не идентифицирате шаблоните по техните id, ако използвате PageControl, тъй като няма да работи (вижте причина тук). На PageControls винаги използвайте select() с името на класа на шаблона   -  person RSW    schedule 20.01.2013


Отговори (1)


Той е в base.js, ред 2712 и в крайна сметка извиква querySelector (или querySelectorAll )

Ако поставите точка на прекъсване на _evaluateObjectQueryExpression в base.js (около ред 6154) и преминете през нея, ще получите известна представа за това как се анализира стойността.

person Jim O'Neil    schedule 23.12.2012
comment
Задълбочавайки се в това как WinJS имплементира тази функционалност с формата на опциите, е някак готино - можете да го използвате за свои собствени атрибути и да правите много други магии. - person Dominic Hopton; 03.01.2013