2013-05-22 13 views
6

Używam Angularjs w części mojej aplikacji Rails, która działa świetnie. Ale zastanawiam się, jak użyć wartości kątowej wewnątrz łącza.Użyj zmiennej kątowej w Railsach link_to

Oto mój pseudo kod:

%table   
    %tr{"ng-repeat" => "book in books"} 
    %td 
     {{book.title}} 
    %td= link_to "Show", book_url({{book.id}}) 

To daje mi błąd:

syntax error, unexpected '}', expecting tASSOC 

Może to mieć również do czynienia z haml przyczyną błędu, ale w jaki sposób mogę wysłać identyfikator w link_to?

+0

Zamiast "link_to", mogę oczywiście użyć zwykłego linku:% a {href: 'books/{{book.id}}'} 'Show' – John

Odpowiedz

2

Zamiast „link_to”, mogę oczywiście użyć zwykłego link:

%a{href: 'books/{{book.id}}'} 'Show' 
+0

Jaka jest zaakceptowana odpowiedź to -1? – Puce

0

Nie możesz tego zrobić, obawiam się. Myślę też Szyny poda identyfikator przejechania, ale jeśli nie, zawsze można użyć wartości RAW:

%td= link_to "Show", book_url('{{book.id}}') 
+0

Nie, nie możesz, dostaniesz link podobny do tego: books /% 7B% 7Bbook.id% 7D% 7D – John

+0

tak, pomyślałem. użyj wtedy atrybutu 'ng-bind'. – Ven

4

Ten pracował dla mnie:

<li ng-repeat="deal in deals"> 
    <%= link_to 'show,'#','ng-href' => "#{deals_path()}/{{deal.id}}" %> 
</li> 
+0

Czy nic po znaku # nie będzie traktowane jako komentarz, a zatem nie będzie działać? – Linus

+1

@Linus: nie, znak # znajduje się w ciągu znaków. – dwaynemac

+2

O tak, masz absolutną rację, tylko Atom nie był w stanie poprawnie wyświetlić składni. – Linus

0

działać prawidłowo:

= link_to 'Show', URI::unescape(books_path('{{book._id}}'))