我遇到使用ng-click将数据附加到textarea输入字段的问题。我正在尝试实现一个下拉菜单,它将样板数据添加到textarea但我希望能够为textarea选择多个样板数据。
这是我对html的看法:
<div id="specialinstructions-group" class="form-group">
<div class="dropdown">
<label data-toggle="dropdown" class="dropdown-toggle">Special Flash Instructions<b class="caret"></b></label>
<ul class="dropdown-menu">
<li ng-click="addSpecialInstructions('Please unplug the system for 10 seconds after the BIOS and EC update completes.')"><span>10 Second Powercycle</span></li>
</ul>
<textarea name="FlashInstructions" class="form-control" id="FlashInstructions" rows="3" ng-model="formData.flashinstructions"> </textarea>
</div>
这是我试图用来追加的控制器/功能:
formApp.controller('formController', function($scope) {
$scope.formData = {};
$scope.formData.flashinstructions = "";
$scope.addspecialInstructions = function(text) {
var added = $scope.formData.flashinstructions + text;
$scope.formData.flashinstructions = added;
alert(added);
}
我收到此错误:
ReferenceError: formData is not defined
我知道JQuery有一个.append()函数,但我似乎无法让它工作。
我是Javascript,JQuery和AngularJS的新手。我可以处理范围问题,并希望知道下一步的解决方案。
您可以提供任何帮助。
答案 0 :(得分:0)
您可以像这样更改控制器。
formApp.controller('formController', function($scope) {
var formData = {};
formData.flashinstructions = "";
formData.addspecialInstructions = function (text) {
var added = formData.flashinstructions + text;
formData.flashinstructions = added;
alert(added);
}
$scope.formData = formData;
你的html看起来像
<div id="specialinstructions-group" class="form-group">
<div class="dropdown">
<label data-toggle="dropdown" class="dropdown-toggle">Special Flash Instructions<b class="caret"></b></label>
<ul class="dropdown-menu">
<li ng-click="formData.addSpecialInstructions('Please unplug the system for 10 seconds after the BIOS and EC update completes.')"><span>10 Second Powercycle</span></li>
</ul>
<textarea name="FlashInstructions" class="form-control" id="FlashInstructions" rows="3" ng-model="formData.flashinstructions"> </textarea>
</div>
我也鼓励你在控制器中使用object literal,而不是用$ scope绑定所有东西。所以首先创建一个对象,在控制器的末尾,你可以绑定它$ scope。这是一种很好的做法。