我是Web开发的新手,并开始使用MEAN-Stack(Mongo,Express,Angular,Node)。
简而言之,我想从mongo中获取一个值到我的角度控制器中,在这样的公式中使用mongo中的多个值:
value11*value12 + value21*value22 ...etc
我的问题更详细:
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 Snippet。 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中存储设定值。
HTML代码段
{{article.value11 * article.value12}}
有效,据我所知,多亏了下面的查询。
Controller snippet
// Find a list of Articles
$scope.find = function () {
$scope.articles = Articles.query();
};
但最终我想回忆起数据库值并将它们定义为控制器中的新$ scope。
答案 0 :(得分:3)
因此整个MEAN堆栈背后的想法以及整个前端/后端的想法是你的角度应用程序是前端,你需要对你的Node.js服务进行AJAX调用以连接到MongoDB < / p>
这样想
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 package从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 }]);