У меня есть веб-страница с динамическим контентом. Скажем, это страница продукта. Когда пользователь переходит непосредственно к example.com/product/123
, я хочу отобразить шаблон своего продукта на сервере и отправить html в браузер. Однако, когда пользователь позже нажимает ссылку на /product/555
, я бы хотел использовать JavaScript для обновления шаблона на стороне клиента.
Я хотел бы использовать что-то вроде Knockout.js или Angularjs, но я не вижу, как я могу предварительно заполнить эти шаблоны с некоторыми исходными данными на сервере и все еще иметь действующий шаблон на клиенте. т.е. если мой шаблон Angular таков:
<ul>
<li ng-repeat="feature in features">
{{feature.title}}
<p>{{feature.description}}</p>
</li>
</ul>
Когда пользователь переходит непосредственно к URL-адресу, мне нужно что-то, которое по-прежнему работает как шаблон Angular, но заполняется html для текущего продукта. Очевидно, что это не работает:
<ul>
<li ng-repeat="feature in features">Hello
<p>This feature was rendered server-side</p>
</li>
<li>Asdf <p>These are stuck here now since angular won't replace them when
it updates.... </p></li>
</ul>
Кажется, что мой единственный вариант - отправить обработанный сервером html в браузер вместе с отдельным шаблоном соответствия...?
В этом случае я бы хотел дважды написать каждый шаблон. Это означает, что мне нужно либо переключиться на JavaScript для моего языка сервера (что мне не понравится), либо выбрать язык шаблона, который компилируется как на Java, так и на JavaScript, а затем найти способ взломать его в Play Framework (что и есть Я сейчас использую.)
Есть ли у кого-нибудь советы?