2013-10-18 53 views
2

我創建了一個按鈕,當它被點擊時,我想從textarea中獲取文本。這裏是html。從文本區獲取val()的角度方式

<div class="text-area-container"> 
    <textarea id="chatBox" class="chat-box" rows="2"></textarea> 
</div> 
<div class="button-container btn-group btn-group-chat"> 
    <input id="comment" ng-click="chat($event)" class="btn" value="Comment"/> 
</div> 

這裏是我的控制器

$scope.chat = function($event) { 
    var button = $event.currentTarget; 
}; 

我從$事件的按鈕,但我如何才能textarea的。我知道我可以jQuery它,但這不是Angular的方式。我如何不使用jQuery?

+0

你想用textarea數據做什麼? –

回答

15

添加ng-model到文本區域,如:

<textarea id="chatBox" class="chat-box" rows="2" ng-model="textModel"></textarea> 

在控制器寫$scope.textModel = "";

演示Fiddle

4

角是雙向數據綁定。設置ng-model會將控制器var的textarea值鏈接起來。

在控制器端:

$scope.textArea = ""; 

上查看方:

<textarea [...] ng-model="textArea">[...]</textarea> 

在您的控制器,$ scope.textArea將始終包含textarea的內容。

+0

不用擔心,我的意思是當some1在您的3分鐘後發佈相同的響應時,它看起來像複製/粘貼。無論如何生病給你+1作爲正確的答案 –

3

您正在尋找ng-model

<textarea ng-model="text" id="chatBox" class="chat-box" rows="2"></textarea> 

$scope.text訪問它在JS或在視圖{{text}}

0

那麼,如果你只需要知道文本區域的價值我想這應該通過數據-NG-模型=「MyTextValue」被綁定到一些$範圍模型變量:

<textarea id="chatBox" data-ng-model="MyTextValue" class="chat-box" rows="2">}</textarea> 

所以在$ scope.chat函數可以訪問$ scope.MyTextValue。

您也可以通過ng- * attibutes啓用/禁用或顯示/隱藏控件。在大多數情況下,這就夠了。

+2

你的示例HTML不會綁定'MyTextValue'到'$ scope'。爲此,您需要設置'ng-model'屬性。這隻會打印出「MyTextValue」的值。 –