Использование функции 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