2015-11-04 5 views
1

Я попытался предложить несколько подходов, предложенных в StackOverflow, и до сих пор не смог получить доступ к переменной Play Scala в моей области Javascript $. Инициализации строки в HTML-файл читает:

@(playVariable: String)(implicit request: play.api.mvc.Request[Any]) 

я могу получить это значение между HTML тегов, как текст на экране, делая что-то вроде:

<h2>Play value: @playVariable</h2> 

Однако, я не знаю, как установить эту переменную в значение $scope ... Кроме того, я не верю, что Play @ действует в HTML-тегов, так event.currentTarget.scalaVal заканчивает undefined в :

<button type="button" ng-click="angularFunction(parameter);" [email protected]>Click!</button> 

Мне нужно получить @playVariable в , чтобы передать в HTTP-адрес бэкэнда ... Как я могу это сделать?

+0

Вы пытались окружить переменную кавычками? Итак, это выглядит так: 'scalaVal =" @ playVariable "' –

ответ

0

Подход, который мы предпринимаем, заключается в том, чтобы установить некоторые глобальные переменные в окне при генерации HTML из Play, а затем получить доступ к глобальным переменным из Углового кода. Да, глобально, как правило, плохо, но иногда это проще. Наш угловой код - это одностраничное приложение, и мы не хотим изменять шаблоны на стороне Play, которые выглядят так, как вы пытаетесь сделать.

Если вы не хотите, чтобы сделать это, и вместо того, чтобы модифицировать свое Угловое шаблон на стороне воспроизведения перед подачей на стол их, вы можете попробовать прохождение игры переменных внутри вызова функции, что-то вроде:

ng-click=angularFunction(parameter, @playVariable)" 
Смежные вопросы