【问题标题】:Best practice for node - mongo - angular节点的最佳实践 - mongo - angular
【发布时间】:2016-07-13 19:48:24
【问题描述】:

我有一个我正在使用 node/mongo/angular 设计的应用程序,我没有得到的是如何将我的数据从 mongo 获取到我的页面中的最佳方式?我可以使用节点,并通过我的路由使用我的模板(在本例中为 hogan)从 mongo 发回数据,并使用 mustachejs 绑定。这对大多数事情都很好。我有一个屏幕,其中包含相当数量的下拉列表,现在将它们绑定到编辑场景似乎是一个挑战。我想让它们绑定到一个角度模型并以这种方式进行。通过节点中的路由获取数据,然后使用 ng-init 之类的东西并将其转换为角度是否更好?或者我最好不要通过节点中的路由获取数据,然后使用角度执行“获取”请求并以这种方式绑定?

【问题讨论】:

  • 在您的第二个选项中,您将对什么执行获取请求?
  • 我需要在页面上加载数据,现在,我可以编写一个路由,并将我的数据传入并使用我的模板进行渲染。我的问题是如何在编辑场景中严格以这种方式设置下拉列表框。我做了一些有角度的东西,我用它来绑定我的表单项,做下拉列表框,设置和编辑场景这样更容易。

标签: javascript node.js mongodb angularjs


【解决方案1】:

来自the documentation of ng-init,更确切地说来自页面顶部的红色警告警报...:

ngInit 唯一合适的用途是为 ngRepeat 的特殊属性设置别名,如下面的演示所示。除了这种情况,您应该使用控制器而不是 ngInit 来初始化作用域上的值。

所以不,不要使用 ng-init。虽然对于从常规应用程序到单页应用程序的延迟迁移来说,这可能是一个很好的策略,但从架构的角度来看,这是一个坏主意。

最重要的是,你会失去两件事:

  1. API。 SPA 的好处是您拥有一个 API,并且您会不断开发和维护它,甚至在它拥有外部用户之前
  2. 清晰的关注点分离。视图仅限于展示,可以被客户端缓存,所有数据都通过 JSON API 端点传输。

【讨论】:

  • 谢谢,我并不打算将它本身作为一个水疗应用程序,但会看看这个并重新考虑我的方法。
  • 好吧,使用 Angular 制作非单页应用程序是可能的,但它有点让人费解。有助于迁移或避免 jquery slashfest,但如果您从头开始,我建议您使用 Angular 进行 SPA 或改用 twitter flight 之类的东西。
  • 谢谢,水疗/角度的方式可能是我将要走的路。这应该不算太糟糕,它是一个无论如何都会收集数据的应用程序。
【解决方案2】:

我想说的是,从 Mongo 获取数据到您的页面的最佳方式是 mnemosyn 所说的,使用 API。

基本上,您可以配置您的 API 路由 f.ex '/api/data',然后它可以被 Angular 服务使用(可以使用 ngResource 使事情变得更容易)。任何希望访问此数据的控制器都可以使用角度服务来获取它,用它做一些事情,然后使用相同的角度服务对其进行更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多