我有一个使用以下代码呈现的文本区域:
<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或其他插件)
谢谢。
答案 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>