幾個AngularJS中的矛盾

一、AngularJS的模板綁定機制好像和其$http服務也有必定關係,若是用jQuery Ajax的返回值賦給$scope的做用域變量,整個綁定顯示的節奏慢一個事件,神器果真麻煩啊。 
二、對hidden input作綁定好像無效 
三、AngularJS中對input的ng-model綁定和對Input的value賦值之間存在矛盾。若是綁定了model就沒法對value作賦值。 
四、input不作ng-model綁定,那驗證輸入的機制就會有問題:錯誤提示顯示不出來。 
五、根據4和5兩個條件,對錶單數據作初始化最好用ng-model,對$scope的變量作初始化時,只能對一級子屬性複製好比$scope.attr1,若是直接對二級屬性,$scope.attr1.attr2賦值,由於第一次初始化時可能$scope.attr1這個對象實際尚未建立,會致使代碼出錯。app


 angular 的 ng-model 確實和 input 的 value存在矛盾,可是能夠預先把值傳遞到$scope.formData裏 
  function formController($scope, $http) { 
   // create a blank object to hold our form information 
   // $scope will allow this to pass between controller and view 
   $scope.formData = { 'name':'這裏是input預先賦值內容' }; 
   // process the form 
   $scope.myForm = function() { 
   $http({ 
   method : 'POST', 
   url : '/role/edit', 
   data : $.param($scope.formData), // pass in data as strings 
   headers : { 'Content-Type': 'application/x-www-form-urlencoded' } // set the headers so angular passing info as form data (not request payload) 
   }) 
   .success(function(data) { 
   console.log(data); 
   if (!data.success) { 
   // if not successful, bind errors to error variables 
   //$scope.errorName = data.errors.name; 
   //$scope.errorSuperhero = data.errors.superheroAlias; 
   } else { 
   // if successful, bind success message to message 
   //$scope.message = data.message; 
   } 
   }); 
   }; 
   } 
   
   
  而後再input中寫 
  <input type="text" name="name" ng-model="formData.name" class="form-control" placeholder="Role Name" value=""> 
  這樣ng-model="formData.name"就默認賦值了this

相關文章
相關標籤/搜索