2016-10-04 1 views
0

Я хотел бы, чтобы сделать это:Как вынести компонент передается внутри параметра другого компонента

<%= render MyProj.SnippetView, "doc_ready.html", 
     state: "DOMContentLoaded", 
     func: "setTimeout(function(){ 
         #{render(MyProj.SnippetView, "scroll_page.html", 
          type: nil, 
          offset: -75, 
          target: @scrollTo, 
          duration: nil)} 
         }, 1)" 
    %> 

, но я получаю сообщение об ошибке:

protocol String.Chars not implemented for {:safe, [[[[[[[[["" | "var scrollOffset = "], "" | "-75"] | ";\nvar scrollTarget = "], [["" | "$(\"#"] | "imgasEmpresas16"] | "\").offset().top + scrollOffset"] | ";\n$('html, body').animate({scrollTop: scrollTarget"] | ""] | "}, \n "], "" | "1"] | ");"]} 

Это потому, что я не могу сделать это или из-за Я делаю это неправильно?

ответ

1

{:safe, iodata} является способом Феникса, чтобы пометить строку как безопасная для печати без побега символов, таких как <, > и & для предотвращения XSS. Вы можете преобразовать {:safe, _} термин к iodata, который может быть использован в струнной интерполяции с использованием Phoenix.HTML.Safe.to_iodata/1:

<%= render MyProj.SnippetView, "doc_ready.html", 
     state: "DOMContentLoaded", 
     func: "setTimeout(function(){ 
         #{render(MyProj.SnippetView, "scroll_page.html", 
          type: nil, 
          offset: -75, 
          target: @scrollTo, 
          duration: nil) |> Phoenix.HTML.Safe.to_iodata} 
         }, 1)" 
%> 

 Смежные вопросы

  • Нет связанных вопросов^_^