如果我有这样的角形
<form name="myForm">
<input type="text" required ng-model="field1" />
<input type="text" ng-model="field2" />
</form>
当我访问模型时,它只会保存那些具有值的字段,因此如果两个字段都有值,则json将为{“field1”:“value1”,“field2”:“value2”}。如果只有field1有一个值json将是{“field1”:“value1”}。我可以指示Angular在模型中使用空值保留空字段吗?
更新
我的控制器如下所示。我正在从服务器上将数据作为json加载。当数据来自服务器时,我得到这个{“field1”:“value1”,“field2”:“value2”}但是当运行saveContent并且只有field1有一个值时,服务器得到这个{“field1”:“value1” }。
var myApp = angular.module('myApp', []);
myApp.controller('contentEditController', ['$scope', '$http',
function ($scope, $http) {
$scope.saveContent = function () {
$http.post("/api/ContentData", $scope.formdata);
};
$scope.loadContent = function (contentId) {
$http.get("/api/ContentData/" + contentId)
.success(function (response) {
$scope.formdata = response;
});
}
}]);
因此,当它们来自服务器时具有值的字段不会被返回为空。
-Mathias
答案 0 :(得分:3)
初始化控制器中作用域的值,
.controller('formcontroller', [ '$scope', function($scope){
$scope.field1 = "";
$scope.field2 = "";
})];
答案 1 :(得分:1)
执行此操作的正确方法是初始化变量。您应该在您的控制器中
$scope.field1 = ""
$scope.field2 = ""
或者更粗略的方法是使用ng-init(如果可以,尽量不要使用ng-init)
<input type="text" required ng-model="field1" ng-init="field1=''"/>
<input type="text" ng-model="field2" ng-init="field2=''"/>