Navegar para uma Página de Pesquisa com uma Consulta de Pesquisa

Um caso de utilização comum é navegar para uma página de pesquisa com uma consulta de pesquisa dinâmica ao clicar numa ligação dentro de uma disposição de conteúdo.

Por exemplo, suponha que pretende navegar para uma página de pesquisa denominada "Authors" ao clicar na ligação "More articles from this author" na sua disposição de conteúdo, transmitindo um payload de pesquisa. O código seguinte irá realizar esta operação. Repare que os objetos globais SCS e SCSRenderAPI estão disponíveis para utilização na disposição de conteúdo na execução dentro de uma página de sites.

$('.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));

Se prevê que a mesma disposição de conteúdo seja utilizada várias vezes na mesma página, é melhor utilizar a ID exclusiva no seletor de CSS em vez do seletor de classe, como $('.more-from-author').click(…).

Por exemplo:

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

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