Объединить выражения угловых и лопастных

0

Я использую Laravel и Angular вместе, и мне было интересно, возможно ли это и как я могу объединить как Laravel, так и Angular выражения?

Например, если у меня есть маршрут, который имеет параметр, который мне нужен из угловой переменной:

data-ng-click="myFunction({{ URL::route("myRoute", [<% myObj.id %>]); }})"

Где <% %> - мои измененные угловые открытые/закрытые теги выражения и {{}} лезвия для открытия/закрытия тегов.

  • 0
    хорошо, так как вы уже изменили поставщик интерполяции, я думаю, что ваше угловое выражение, вероятно, должно быть предоставлено Laravel в виде строки, то есть '<% myObj.id %>'
  • 0
    @Claies Только что попробовал, угловое значение не вводится и выводится "<% myObj.id%>"
Теги:
blade

1 ответ

1
Лучший ответ

Это не сработает.

Код клика (php) запускается на стороне сервера, а угловой (js) выполняется на стороне клиента. Значение кода лезвия всегда выполняется перед угловым кодом, пока ваш код требует, чтобы лезвие выполнялось после углового.

Если бы вы изменили свое выражение, так что клинок должен был работать до углового, тогда он мог бы работать.

Но скоро вы получите множество кодов спагетти. Клинок и угловые - это очень разные технологии. Не смешивайте их, если это крайне необходимо. И даже тогда обязательно прокомментируйте свои причины.

  • 0
    Я только вводил лезвие для маршрутов, и я не вижу другого способа обойти это, используя чисто угловой, кроме жесткого кодирования URL-адресов в угловых. Я справился с этим, введя маршруты блейдов, а затем заменив параметры в шаблоне url значениями в угловых единицах. Это нормальный подход или вы можете предложить что-то другое?
  • 0
    Итак, вам требуется угловой код для динамического получения URL-адресов (поскольку myObj.id является динамическим) с сервера? Я бы использовал ajax в таких случаях.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню