我有一个包含动态内容的网页。假设它是一个产品页面。当用户直接访问时,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 框架中(这就是我目前正在使用。)
有人有建议吗?