我正在使用asp.net MVC 5并使用Html.CheckBoxFor创建一个复选框。
<div class="col-md-6">
@Html.CheckBoxFor(m => m.active, new {
@class = "form-control populate", @id = 'EditActive',
@ng_model = "editFormData.active"
})
</div>
当我在ajax调用后设置angularjs editFormData时,当我将其作为{{editFormData}}输出到屏幕时,该值是正确的,但该复选框未显示为已选中。
datatableApp.controller('EditFormController', ['$scope', '$http', function($scope, $http) {
$scope.getEditStreet = function(streetID) {
$http.post('@Url.Action(Model.GetFormControllerFunctionName, Model.GetFormControllerName)', "{ @Model.JavascriptEditPropertyName : " + streetID + "}").then(function(response) {
alert("success");
$scope.editFormData = response.data.ResultObject;
},
function(response) {
alert("fail" + response.statusText);
});
};
}]);
resultobject包含一个正确显示为true或false的活动字段。
如何获取要检查的复选框的剃刀版本?
答案 0 :(得分:0)
我明白了。显然,在某些情况下修改某些值时,您需要使用$ scope.apply()。不确定所有这些情况是什么,但我添加了它,现在它完美地工作。
datatableApp.controller('EditFormController', ['$scope', '$http', function($scope, $http) {
$scope.getEditStreet = function(streetID) {
$http.post('@Url.Action(Model.GetFormControllerFunctionName, Model.GetFormControllerName)', "{ @Model.JavascriptEditPropertyName : " + streetID + "}").then(function(response) {
alert("success");
$scope.editFormData = response.data.ResultObject;
$scope.$apply();
},
function(response) {
alert("fail" + response.statusText);
});
};
}]);