用AngularJS填充dropdownlist
我想用我创建的名为Vinces的表中的值填充dropdownlist。此表中只有两个内容,场馆Id和名称 我从保存表的数据库中创建了代码优先实体数据模型,并在控制器中创建了此方法:用AngularJS填充dropdownlist,angularjs,asp.net-mvc,drop-down-menu,Angularjs,Asp.net Mvc,Drop Down Menu,我想用我创建的名为Vinces的表中的值填充dropdownlist。此表中只有两个内容,场馆Id和名称 我从保存表的数据库中创建了代码优先实体数据模型,并在控制器中创建了此方法: public JsonResult GetVenues() { using (ReservationsModel dc = new ReservationsModel()) { var v = dc.Venues.OrderBy(a => a.Na
public JsonResult GetVenues()
{
using (ReservationsModel dc = new ReservationsModel())
{
var v = dc.Venues.OrderBy(a => a.Name).ToList();
return new JsonResult { Data = v, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
然后,我在脚本中添加了:
$scope.selectedVenue = null;
$scope.venues = [];
$http.get("/home/getvenues").success(function (data) {
angular.forEach(data, function (item) {
venues.push(item.Name);
});
$scope.list = venues;
}).error(function (status) {
alert(status);
});
$scope.selectedVenue = $scope.venues[i].Name;
我认为:
<select ng-model="selectedVenue" ng-options="item in venues">
<option value="">-- Select Venue --</option>
</select>
我来自这些向导:
让我们看看你的代码。检查注释
$scope.selectedVenue = null;
$scope.venues = [];
$http.get("/home/getvenues").success(function (data) {
angular.forEach(data, function (item) {
// this should be $scope.venues, not just venues
venues.push(item.Name);
});
// you don't need another scope variable
$scope.list = venues;
}).error(function (status) {
alert(status);
});
// as $scope.venues is an array of Names, $scope.selectedVenue = $scope.venues[i] is enough
$scope.selectedVenue = $scope.venues[i].Name;
所以
在模板中
<select ng-model="selectedVenue">
<option value="">Select Venue</option>
<option ng-repeat="venue in venues" ng-value="venue">{{venue}}</option>
</select>
您的html部分正常,只需在controller JS中进行以下修改:
在推送时访问场地,如$scope.victions
由于http.get是异步的,因此在.success内指定默认选定项。
代码:
谢谢..我实现了更改>A<,但遗憾的是我的dropdownlist仍然没有填充;M当我点击下拉菜单时,只有“选择地点”在里面。你有一些关于如何排除我可能出错的地方的提示吗?哦,哈哈,我很抱歉。我愚蠢地从我的控制器上注释了我的GetVinces方法,我忘了它facepalm它正在工作>A<谢谢你,好先生A
<select ng-model="selectedVenue">
<option value="">Select Venue</option>
<option ng-repeat="venue in venues" ng-value="venue">{{venue}}</option>
</select>
$scope.selectedVenue = null;
$scope.venues = [];
$http.get("/home/getvenues").success(function (data) {
angular.forEach(data, function (item) {
$scope.venues.push(item.Name);
});
$scope.selectedVenue = $scope.venues[i].Name; // i must be declared in your js
}).error(function (status) {
alert(status);
});