2014-09-18 2 views
0

Так что я использую Dustjs на Sailsjs для моего проекта.Помощник Dustjs для интерфейса

Я представляю первую страницу на сервере, а затем использую одну и ту же клиентскую клиентскую панель.

Проблема: Мой шаблон содержит global sails service, который удваивается как dustjs helper:

{# sails.services.globalutils.hyphenator ул = названии /}

Но, на client-side, я я не могу использовать эту услугу. Как я могу экспортировать эту услугу клиенту, не зайдя на решение JS? Может ли он быть связан с шаблоном dustjs?

ответ

0

A {#section} сигнализирует, что пыль должна выглядеть в контексте, указанном в dust.render(). До тех пор, пока функция hyphenator не имеет зависимостей на стороне сервера, вы можете просто привести ее в своем клиентском контексте. Услуги Sails - это только модули Javascript в папке api/services, поэтому попробуйте require с соответствующим модулем, захватив его свойство hyphenator и передав его клиенту для использования в вызове клиента render.

{ 
    "sails": { 
    "services": { 
     "globalutils": { 
     "hyphenator": function(chunk, context, bodies, params) { 
      // do some hyphenation 
     } 
     } 
    } 
    } 
} 

Конечно, если hyphenator имеет логику, которая опирается на сервере, вы не можете просто переместить его клиенту. Вы можете открыть API-интерфейс на стороне сервера, который вызывает ваш скрипт, и связать это с помощью chunk.map, чтобы создать асинхронный блок пыли.

+0

Это никогда не было для меня! Благодарю. – myusuf