【问题标题】:Render data from node server on page refresh and thereafter from angularjs在页面刷新时从节点服务器渲染数据,然后从 angularjs 渲染数据
【发布时间】:2014-03-22 02:40:57
【问题描述】:

我正在开发一个使用 angularjs 与 nodejs 和dustjs 的应用程序。

我想要实现的就像在页面刷新期间传递数据一样

res.render('index', {names : [{name:"name1"},{name:"name2"}]});

dustjs 应该能够渲染

{#names}<li>{name}</li>{/names}

如何在页面中使用 Angular js ngrepeat 进行后续操作。

截至目前,我正在发出一个 http 请求,获取 json 并在客户端完全呈现页面。

<li ng-repeat="myname in mynames>{{myname.name}}</li>

我不喜欢将我的数据保存为可通过源代码读取的 JavaScript 变量。

只是想知道是否有人做过这样的事情。

【问题讨论】:

  • 我在这里找到了类似的帖子stackoverflow.com/questions/11838639/…
  • 当使用包含绑定和模板的 SPA 框架时,进行页面的服务器端渲染是不典型的,这样的dustjs 似乎是“双重职责”,你看到使用它有什么好处吗?
  • 我的应用程序使用 krakenjs.com,默认模板是dustjs,无论如何我将在服务器端有一些模板引擎。

标签: node.js angularjs dust.js


【解决方案1】:

我以一种骇人听闻的方式来实现它,而不是一个合适的解决方案。

我使用 ng-if 的 angularjs 来做到这一点

var mynames = [{name:"One"},{name:"Two"}]

<div ng-if="!mydata">
     {#mynames }
        <div>{name}</div>
     {/mynames }
</div>


<div ng-if="mydata"> 
     <div ng-repeat="myname in mynames">[[myname.mynames]]</div>
</div>

我对 angularjs 使用方括号,因为与使用以下代码修复的dustjs 存在一些冲突

angular.module('myapp').config(function($interpolateProvider){

    $interpolateProvider.startSymbol('[[');
    $interpolateProvider.endSymbol(']]');

});

【讨论】:

    猜你喜欢
    • 2017-10-28
    • 2019-02-03
    • 2021-09-10
    • 2020-08-12
    • 2010-12-19
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多