繁体   English   中英

如何从mongodb获取值到angularjs控制器

[英]How can I get a value from mongodb to an angularjs controller

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

简而言之 ,我想从mongo中获取一个值到我的角度控制器中,以使用mongo中的多个值,如下所示:

value11*value12 + value21*value22 ...etc

我的问题更详细:

  1. 我已经用字段集写了一些数据到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滑块

$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}}

这是有效的,据我所知,多亏了下面的查询。

控制器片段

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

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

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

可以把它想象成Angular <---AJAX---> Node <------> Mongo

所以你需要的第一件事就是建立一个休息服务(使用快速框架的帮助),这样的事情就可以了

app.get('/getMongoData', function(req, res, next) {
     //code to get mongo data with Mongoose

     req.json(DataFromMongo); //returns the data in json format
}); 

在这里,您将使用后端代码使用Mongoose包从Mongo数据库中获取数据,并使用req.json()调用返回发送回来,该调用是Express的一部分

现在这一切都可以工作,你可以通过类似的方式调用Angular控制器中的数据

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM