2014-09-10 22 views
2

我需要從用戶獲得約14種不同的輸入值,以創建一個產品和輸入不應在控制器null收到NG-模型,而不應該去爲空字符串空文本,而不是空設置在AngularJS

爲了實現這一目標,下面是我所做的: 控制器:

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); 
      } 
     }); 
    }; 

這讓我當用戶沒有輸入任何值,發送一個空字符串。

問題: 當我嘗試在文本框中輸入一個值,然後刪除/清空文本框並提交。 我不能看到SalesPartNo中所產生的JSON字符串

請指出的,如果我的做法是錯誤的錯誤提示我一個更好的方法,因爲angularjs沒有約束力從<input name="SalesPartNo" />需要

回答

1

請刪除屬性除非值是有效的模型。

請試玩這裏http://jsbin.com/wuhipe/1/edit?html,console,output

<input type="text" name="SalesPartNo" ng-model="newProductCatalog.SalesPartNo" class="form-control" /> 
+0

@RandomUser你可以用你的輸入形式和驗證它,你發送給服務器之前,請看這裏http://jsbin.com/wuhipe/ 2/edit?console,輸出 – sylwester 2014-09-10 10:32:28

+0

@RandomUser和? – sylwester 2014-09-10 10:40:20

+0

@RandomUser請按照這個例子,你可以看到提交按鈕不發送,如果表單無效。 – sylwester 2014-09-10 10:45:46

0

你可以使用默認的一個延伸JsonString,比如說,角具有擴展方法。 讓NewProductCatalog,比方說,NewProductCatalogCopy的副本,然後做

angular.extend(NewProductCatalogCopy , JsonString); 
相關問題