如何从 mongodb 获取值到 angularjs 控制器
How can I get a value from mongodb to an angularjs controller
我是 Web 开发新手,从 MEAN-Stack(Mongo、Express、Angular、Node)开始。
简而言之,我想从 mongo 中获取一个值到我的 angular 控制器中,以便在 mongo 中使用多个值像这样的公式:
value11*value12 + value21*value22 ...etc
我的问题更详细:
- 我已经用字段集将一些数据写入 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 中存储了设置值。
- 在第二步中,我想从数据库中获取值
进入不同的控制器以将它们包含在上面提到的
公式。到目前为止唯一有效的方法是回忆像这样的价值观
这在 html 视图中直接显示:
HTML 片段
{{article.value11 * article.value12}}
据我所知,这是有效的,这要归功于下面的查询。
控制器代码段
// Find a list of Articles
$scope.find = function () {
$scope.articles = Articles.query();
};
但最终我想调用数据库值并将它们定义为控制器中的新 $scope。
所以整个 MEAN 堆栈和或多或少整个 frontend/backend 想法背后的想法是,您的 angular 应用程序是前端,您需要制作一个 AJAX调用您的 Node.js 服务以连接到 MongoDB
这样想
Angular <---AJAX---> Node <------> 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 数据库中获取数据,并使用 req.json()
调用 return 将其发回是 Express
的一部分
既然这一切都有效,您可以使用 Angular 控制器调用数据,例如
$http.get('/getMongoData').then(function(response) {
$scope.myMongoData = response.data;
});
注意:不要忘记将 $http
添加到控制器的注入中
app.controller('MyController', ['$scope', '$http', function ($scope, $http) { // code }]);
我是 Web 开发新手,从 MEAN-Stack(Mongo、Express、Angular、Node)开始。
简而言之,我想从 mongo 中获取一个值到我的 angular 控制器中,以便在 mongo 中使用多个值像这样的公式:
value11*value12 + value21*value22 ...etc
我的问题更详细:
- 我已经用字段集将一些数据写入 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
$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 中存储了设置值。
- 在第二步中,我想从数据库中获取值 进入不同的控制器以将它们包含在上面提到的 公式。到目前为止唯一有效的方法是回忆像这样的价值观 这在 html 视图中直接显示:
HTML 片段
{{article.value11 * article.value12}}
据我所知,这是有效的,这要归功于下面的查询。
控制器代码段
// Find a list of Articles
$scope.find = function () {
$scope.articles = Articles.query();
};
但最终我想调用数据库值并将它们定义为控制器中的新 $scope。
所以整个 MEAN 堆栈和或多或少整个 frontend/backend 想法背后的想法是,您的 angular 应用程序是前端,您需要制作一个 AJAX调用您的 Node.js 服务以连接到 MongoDB
这样想
Angular <---AJAX---> Node <------> 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 数据库中获取数据,并使用 req.json()
调用 return 将其发回是 Express
既然这一切都有效,您可以使用 Angular 控制器调用数据,例如
$http.get('/getMongoData').then(function(response) {
$scope.myMongoData = response.data;
});
注意:不要忘记将 $http
添加到控制器的注入中
app.controller('MyController', ['$scope', '$http', function ($scope, $http) { // code }]);