我需要从用户那里获得大约14个不同的输入值来创建产品,并且输入不应该作为null
在控制器中接收,而应该作为空字符串
为实现这一目标,我做了以下事情: 的控制器:
var NewProductCatalog = {
CustomerGuid: '00000000-0000-0000-0000-000000000000', SalesPartNo: "", Description: "",
Name: "", Inventory: 0, UnitPrice: 0, BrandNo: "", TypeNo: "", LobNo: "", BrandName: "",
TypeName: "", LobName: "", ManufacturePartNo: "", InventoryPartNo: "", EANCode: "",
ImageURL: "", ProductType: "", DateAdded: "", Active: false, Tax: 0
};
$scope.newProductCatalog = NewProductCatalog;
.cshtml:
<label for="SalesPartNo">Sales Part No *</label>
<input type="text" required name="SalesPartNo" ng-model="newProductCatalog.SalesPartNo" class="form-control" />
...
<input type="submit" ng-click="createProductCatalog(newProductCatalog)" />
创建功能(控制器):
$scope.createProductCatalog = function (NewProductCatalog) {
var JsonString = angular.toJson(NewProductCatalog);
CustomProductsServices.ProductCatalog_create(JsonString, function (callback) {
if (callback.success) {
$window.alert(callback.message);
} else {
$window.alert(callback.message);
}
});
};
这允许我在用户没有输入任何值时发送空字符串。
问题: 当我尝试在文本框中输入值,然后删除/清空文本框并提交。 我无法在生成的JSON字符串中看到SalesPartNo
请指出错误,如果我的方法是错误的,建议我采用更好的方法
答案 0 :(得分:1)
除非值有效,否则请删除<input name="SalesPartNo" />
所需的属性,因为angularjs不会绑定到模型。
请在这里演示http://jsbin.com/wuhipe/1/edit?html,console,output
<input type="text" name="SalesPartNo" ng-model="newProductCatalog.SalesPartNo" class="form-control" />
答案 1 :(得分:0)
您可以使用默认值扩展JsonString,例如,angular has extend方法。 制作一份NewProductCatalog,比如NewProductCatalogCopy,然后再做
angular.extend(NewProductCatalogCopy , JsonString);