2015-07-10 60 views
3

我有一個非常簡單的角度控制器的方法:角控制器只挑選了輸入值發生變化

$scope.addComment = function() { 
     if ($scope.newComment.message) { 
      $scope.can_add_comments = false; 
      new Comments({ comment: $scope.newComment }).$save(function (comment) { 
      $scope.comments.unshift(comment); 
      return $scope.can_add_comments = true; 
      }); 
      return $scope.newComment = {}; 
     } 
     }; 

而在我的形式,我有一個持有評論的價值一個textarea:

<textarea class="required" cols="40" id="new_comment_message" maxlength="2500" ng-disabled="!can_add_comments" ng-model="newComment.message" required="required" rows="20"></textarea> 

到目前爲止工作很好,但我確實想發送一些數據,隱藏數據和評論。所以我補上一認爲值:當我檢查它總是回來的只有消息的對象,因爲它的屬性,它是從文本區域價值$scope.newComment

<input id="hash_id" name="hash_id" ng-init="__1515604539_122642" ng-model="newComment.hash_id" type="hidden" value="__1515604539_122642"> 

不過,我不獲取對象hash_id上的財產。

當我使這個輸入非隱藏,我手動輸入值到輸入字段並提交表單時,我確實得到一個具有hash_id屬性的對象。我在這裏做錯了什麼,沒有設定好?

+0

newComment中的屬性是什麼?這聽起來像你沒有在newComment上的hash_id。當你手動編輯它時,角度增加(newComment ['hash_id'] = newValue)。你可以做一個jsfiddle嗎? –

+0

@DhanaKrishnasamy通過手動我的意思是當我在輸入字段中輸入並按提交 –

+0

''input_id =「hash_id」name =「hash_id」ng-model =「newComment.hash_id」type =「hidden」ng-value = 「__1515604539_122642」>' 可能會工作 – ODelibalta

回答

2

據我所知,ng-model不使用value屬性作爲「默認」(即它不會將它複製回您的模型)。如果你想有一個默認情況下,它應該放在哪裏的模型定義:

$scope.newComment = { hash_id: "__1515604539_122642", /* Other params */ };

或者,改變ng-init給分配應該工作(雖然我會建議將上述溶液代替):

<input id="hash_id" name="hash_id" ng-init="newComment.hash_id = '__1515604539_122642'" ng-model="newComment.hash_id" type="hidden">

+0

我會說這是非常有用的,雖然我很好奇爲什麼init首先被使用。 – KreepN

+0

鑑於init與'value'屬性具有相同的值,我的猜測是OP希望它將它的值作爲模型的初始值。 – DRobinson