我是Angular和Mongo的新手,我希望使用Angular js从Mongo数据库中提取数据,以填充我正在构建的单页网站上的div。提取的数据取决于用户在表单上的下拉选项中选择的选项。 Angular有很多选择,我希望有更多经验的人可以指出我正确的方向。以下是我的代码的相关部分:
<body ng-app="">
<div id='ad'> </div><!-- to be populated with data from MongoDB -->
<select id='climateZone' ng-model="zone" >
<option value="z3">3</option>
<option value="z4">4</option>
<option value="z5">5</option>
<option value="z6">6</option>
<option value="z7">7</option>
<option value="z8">8</option>
<option value="z9">9</option>
<option value="z10">10</option>
</select>
<button id='Go'><h2>Go!</h2></button>
我想要它,以便当用户选择其中一个选项并按下“go”按钮时,“ad”div将填充来自数据库的特定于选项的信息。
我希望这一切都清楚;任何帮助表示赞赏!
答案 0 :(得分:2)
据我所知,您不能直接向MongoDB发出HTTP请求。相反,您需要一个与您通信的服务器端实现。如果您使用Node作为后端,可以查看Mongoose:http://mongoosejs.com/
Mongoose是MongoDB的众多库之一,您可以定义模型,查询,发布数据等。假设我想根据参数获取数据。首先,您需要一个数据模型:
var Cat = mongoose.model('Cat', { name: String });
然后您可以开始在数据库连接之上运行。下面的例子应该为你带来所有名为“Toddy”的猫:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/myDB');
Cat.find({name: 'Toddy'}, function (err, result) {
if (err) return console.error(err);
console.log(result);
});
也就是说,您可以使用ngChange和ngModel指令将组合的值放在变量上,并在变化时做出适当的反应,如下所示:
<select id='climateZone' ng-model="zone" ng-change="loadData()">
<option value="z3">3</option>
<option value="z4">4</option>
<option value="z5">5</option>
<option value="z6">6</option>
<option value="z7">7</option>
<option value="z8">8</option>
<option value="z9">9</option>
<option value="z10">10</option>
</select>
成为$ scope的“zone”和“loadData()”成员。