FW1 Сервисный звонок

Может кто-нибудь объяснить, как работает сервисный вызов FW1? Как я читаю раздел из руководства ниже. Я думал, что следующее должно работать.

Смотрите: https://github.com/seancorfield/fw1/wiki/Reference-Manual

Служебному методу передается коллекция именованных аргументов, основанная на том, что находится в контексте запроса после выполнения методов контроллера (т. Е. After before(), startItem() и item()). Сервисный метод может возвращать результат, который помещается в контекст запроса с помощью FW/1. По умолчанию FW/1 1.x сохраняет результат (начального) вызова метода службы в файле rc.data.

Контроллер / comparables.cfc

component { 
public any function init( fw ) {
    variables.fw = fw;
    return this;
}


public void function autocomplete( rc ) {
    // queue up a specific service (comparables.autocomplete) with named result (autocomplete)
    var args = StructNew();
    StructInsert( args, "table", "The Table" );
    StructInsert( args, "column", "The Column" );
    variables.fw.service( 'comparables.autocomplete', 'autocomplete', args );
}

}

сервис / comparables.cfc

component { 
public any function autocomplete( string table, string column, string term ) {      
    return "not yet implemented #table# #column# #term#";
}

}

В следующем представлении отображается rc.autocomplete = "еще не реализовано"

просмотры / сопоставимые / autocomplete.cfm

<cfdump var="#variables.rc#" >

1 ответ

Решение

Я наконец смог понять, как все это сочетается. Следующий сервисный вызов немедленно вернет значение, тогда как вышеприведенный вызов не будет вызван, пока не завершится метод контроллера.

comp_serv = CreateObject("component","services.comparables");
rc.comparables = comp_serv.autocomplete( "table","colum","term" );
Другие вопросы по тегам