Přechod na stránku vyhledávání pomocí vyhledávacího dotazu

Běžným případem použití je přechod na stránku vyhledávání pomocí dynamického vyhledávacího dotazu, když kliknete na odkaz uvnitř rozvržení obsahu.

Předpokládejme například, že chcete přejít na stránku vyhledávání s názvem „Autoři“, když kliknete na odkaz „Další články od tohoto autora“ v rozvržení obsahu, které předá datovou část pro vyhledávání. K dosažení tohoto cíle bude potřebný následující kód. Všimněte si, že globální objekty SCSSCSRenderAPI jsou k dispozici pro použití v rozvržení obsahu při spuštění uvnitř stránky webu.

$('.more-from-author').click($.proxy(function () {
    var childrenPages = SCS.structureMap[SCS.navigationRoot].children;

    if (!childrenPages) return; // No pages

    // Find the Authors page
    for (var i = 0; i < childrenPages.length; i++) {
        var page = SCS.structureMap[childrenPages[i]];
        if (page.name === 'Authors') {
            var linkData = SCSRenderAPI.getPageLinkData(page.id);
            if (linkData && linkData.href) {
                var href = linkData.href,
                    searchPayload = content.author_id + '*',
                    contentType = "Starter-Blog-Post";
                // if both the page URL and the search query exists, navigate to the page passing in the query
                if (href && searchPayload) {
                    var queryStart = href.indexOf('?') === -1 ? '?' : '&';

                    // add in the contentType and search parameters
                    // contentType isn't a required URL parameter
                    // Payload contains search string only. No parameter name.
                    href += queryStart + (contentType ? 'contentType=' + contentType + '&' : '') + 'q=' + searchPayload;

                    // navigate to the search results page
                    window.location = href;
                 }
            }
        }
    }
}, this));

Očekáváte-li, že stejné rozvržení obsahu bude na stejné stránce použito vícekrát, je vhodnější použít jedinečný identifikátor v selektoru CSS, a nikoli v selektoru třídy, například $('.more-from-author').click(…).

Například:

template.html
        <div id="{{navigateId}}">….</div>

render.js
        content.navigateId = this.scsData.id + 'detailTrigger';
        $('#' + navigateId).click(…)