【发布时间】:2018-02-25 03:11:45
【问题描述】:
我正在为应用程序使用 Asp.MVC 5,我想生成许多具有不同 angularjs 模型的复选框,我认为最好的选择是在 angularjs 中使用数组模型。我在foreach 中尝试了下面的代码:
@{
int i = 0;
foreach (var selectedVesselViewModel in Model.SelectedVesselViewModels)
{
using (Html.BeginForm("SelectNotificaiton", "Admin", new { area = "DashBoard" }, FormMethod.Post, new { id = "filterVesselsForm_" + i}))
{
@Html.HiddenFor(item => selectedVesselViewModel.VesselId, new {ng_model= "SelectedVessels[" + i + "].VesselId" })
<li class="row">
<div class="col-md-10">
<a href="#" class="text-admin-area">
@selectedVesselViewModel.VesselName
</a>
</div>
<div class="col-md-2">
<div class="pull-right">
<div class="checkbox checkbox-inline">
@Html.CheckBoxFor(item => selectedVesselViewModel.Selected,
new {id = "SelectedVesselViewModels_"+i+"__Selected",
onchange ="document.getElementById('filterVesselsForm_"+i+"').submit()",
ng_model = "SelectedVessels[" + i + "].Selected"
})
<label for="SelectedVesselViewModels_@(i++)__Selected"></label>
</div>
</div>
</div>
</li>
}
}
}
i变量是一个递增变量:
在 angularjs 控制器中我有这样的东西:
(function (app) {
"use strict";
app.controller("DashboardCtrl", ['$scope',
function ($scope) {
function init() {
// $scope.SelectedVessels = [];
}
$scope.SelectedVessels = [];
init();
$scope.RefreshSideBarVessels = function() {
angular.forEach($scope.SelectedVessels, function (value, key) {
alert($scope.SelectedVessels[key].VesselId);
});
}
}]);
})(adminModule);
当我使用 angularjs foreach 循环时,$scope.SelectedVessels 似乎是空的,但我不知道为什么!
angular.forEach($scope.SelectedVessels, function (value, key) {
alert($scope.SelectedVessels[key].Selected);
});
有谁知道问题出在哪里,为什么我无法访问$scope.SelectedVessels 数组的内部属性以及为什么它是空的?
【问题讨论】:
-
$scope.SelectedVessels 填充在代码的什么位置?
-
在控制器中。我在 ng-init 中尝试过,但没有成功
-
你的问题我还不清楚。如果可能的话,你能通过 plunker 或 jsfiddle 分享你的代码吗?
-
Oki 我会尽快为你准备一个 asp.mvc 小提琴
-
@yesIcan 你现在可以看到我的编辑。我希望 $scope.SelectedVessels 将被填充到 c# 代码中的 foeach 循环中
标签: javascript asp.net angularjs asp.net-mvc