使用Angular根据表单输入

时间:2016-07-05 00:42:12

标签: javascript angularjs forms mongodb drop-down-menu

我是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将填充来自数据库的特定于选项的信息。

我希望这一切都清楚;任何帮助表示赞赏!

1 个答案:

答案 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()”成员。