在ng-click AngularJS上附加带字符串的textarea输入类型

时间:2015-09-16 15:36:54

标签: javascript jquery html angularjs

我遇到使用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的新手。我可以处理范围问题,并希望知道下一步的解决方案。

您可以提供任何帮助。

1 个答案:

答案 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。这是一种很好的做法。