检测键事件并在textarea中粘贴值

时间:2014-07-28 12:13:17

标签: angularjs

我有一个使用以下代码呈现的文本区域:

<textarea class="input_inline full_width_input" cols="15" id="id_form-0-expected_result" name="form-0-expected_result" placeholder="Expected result" rows="7"></textarea>

我使用AngularJS和Angular-ui-bootstrap并且我想执行以下操作:当用户在我的文本区域中键入一些文本时:如果用户输入&#39;(&#39;然后我想要自动打开一个Angular UI Modal Box来向他展示一些选项。例如:

<ul>
    <li>Option 1</li>
    <li>Option 2</li>
    <li>Option 3</li>
</ul>

一旦用户点击某个选项(让我们说选项2),我希望关闭该模式并选择&#39;选项2&#39;写在文本区域。

您是否知道我如何能够以最强的方式继续前进?#39; Angular Way&#39; ?(我的意思是没有jQuery或其他插件)

谢谢。

1 个答案:

答案 0 :(得分:0)

我相信this fiddle解决了这个问题。 $scope.$watch可以非常简单的方式解决问题。

代码看起来有点像;

var app = angular.module("App", []);

app.controller('MainCtrl', ['$scope', function ($scope) {
    $scope.watchedInput = '';
    var brackets = 0;
    $scope.$watch('watchedInput', function (now, then) {
        if (now && now.length) {
            if (now.charAt(now.length - 1) === '(') {
                brackets++;
            } else {
                brackets = 0;
            }
        }
        if (brackets === 2) {
            console.log('OPEN MODAL');
        }
    });
}]);

HTML

<div ng-app="App">
    <div ng-controller="MainCtrl">
        <input type="text" ng-model="watchedInput" />
    </div>
</div>