【问题标题】:How can I get a value from mongodb to an angularjs controller如何从 mongodb 获取值到 angularjs 控制器
【发布时间】:2016-12-09 12:02:56
【问题描述】:

我是 Web 开发的新手,刚开始使用 MEAN-Stack(Mongo、Express、Angular、Node)。

简而言之,我想从 mongo 获取一个值到我的角度控制器中,以便在这样的公式中使用来自 mongo 的多个值:

value11*value12 + value21*value22 ...etc

我的问题更详细:

  1. 我已经用 fieldset 将一些数据写入 mongo:

HTML 片段

<fieldset>
<rzslider rz-slider-model="value11"
          rz-slider-options="slider11.options"></rzslider>
<md-slider flex md-discrete ng-model="value12" step="1" min="1 max="100 aria-label="rating"></md-slider
</fieldset>

Controller.js 代码段。 rzslider 来自那里 https://github.com/angular-slider/angularjs-slider
Angular-Material 中的 md-slider

$scope.slider11 = { 
  options: { 
    showTicks: true,
    hidePointerLabels: true,
    hideLimitLabels: true,
    stepsArray: [
      { value: 1, legend: 'Very poor' }
      { value: 2, legend: 'Poor' },
      { value: 3, legend: 'Fair' },
      { value: 4, legend: 'Good' }, 
      { value: 5, legend: 'Very Good' }
    ] 
  }
};
$scope.value12 = 40;
//Create new Article object
var article = new Articles
  value11: this.value11,
  value12: this.value12,

此时一切正常,在 mongo 中设置的值被存储。

  1. 在第二步中,我想从数据库中获取值 进入不同的控制器以将它们包含在上面提到的 公式。到目前为止唯一有效的方法是回忆像 直接在 html 视图中:

HTML 片段

{{article.value11 * article.value12}}

据我所知,这很有效,这要归功于下面的查询。

控制器sn-p

// Find a list of Articles
$scope.find = function () {
$scope.articles = Articles.query();
};

但最终我想调用数据库值并将它们定义为控制器中的新 $scope。

【问题讨论】:

    标签: javascript angularjs mongodb mean-stack meanjs


    【解决方案1】:

    因此,整个 MEAN 堆栈背后的想法以及或多或少的整个前端/后端想法是,您的 Angular 应用程序是前端,您需要对 Node.js 服务进行 AJAX 调用以连接到 MongoDB

    这样想 Angular &lt;---AJAX---&gt; Node &lt;------&gt; Mongo

    所以你需要做的第一件事是构建一个休息服务(使用 express 框架的帮助),这样这样的东西就可以工作

    app.get('/getMongoData', function(req, res, next) {
         //code to get mongo data with Mongoose
    
         req.json(DataFromMongo); //returns the data in json format
    }); 
    

    在这里,您将使用后端代码使用 Mongoose package 从 Mongo 数据库中获取数据,然后使用 Express 中的 req.json() 调用将其发回

    现在这一切都工作了,你可以从你的 Angular 控制器调用数据,比如

    $http.get('/getMongoData').then(function(response) {
          $scope.myMongoData = response.data;       
    });
    

    注意:不要忘记将$http 添加到控制器的注入中 app.controller('MyController', ['$scope', '$http', function ($scope, $http) { // code }]);

    【讨论】:

    • 它的工作方式与您刚才解释的完全一样。竖起大拇指并感谢您的快速回答:D
    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2017-12-30
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多