如何检测特定字符何时放入输入?

时间:2017-11-02 18:08:44

标签: javascript angularjs

HTML

<div class="form-group"><label class="col-md-4 control-label" for="s1">URL</label>
                <div class="col-md-4"><input id="url" name="url" type="text" ng-change="checkVal()" ng-model="url" placeholder="" class="form-control input-md"></div>
            </div>

Javascript v1.6

 var app = angular.module('urlGeneratorAvid', [])

  .controller('macroControllerAvid',['$scope', function ($scope) {
    $scope.needQuestionMark = true;
    $scope.url = '';

    $scope.checkVal = function() {
      console.log("Checking Value.");
      if ($scope.url.includes('?')) {
        console.log("Detected!");
        $scope.needQuestionMark = false;
        console.log("Question Mark Variable: " + $scope.needQuestionMark);
      } else {
        $scope.needQuestionMark = true;
        console.log("Question Mark Variable: " + $scope.needQuestionMark);
      }
    }

  }]);

目标

从指令中处理变量 needQuestionMark 。它目前从指令输出正确的数据,但我似乎无法操纵它。

终极目标

检测到的网址输入包含一个问号,因此完整的URI不包含第二个问号,而是一个&符号。

AngularJS新手所以,如果我朝错误的方向走,请告诉我,谢谢!

1 个答案:

答案 0 :(得分:1)

我不确定我是否100%得到你。

检测并操作ngModel /输入值。你不必使用它的指令。

好主意是把手表放在控制器内,就像这样

$scope.$watch('$scope.textBox', function(newValue, oldValue) {
   // do stuff to the text everytime it changes
});

第二个选项可以是将ng-change添加到html

ng-change example

第三。为它做组件,它就像一个指令,但是一种使用Angular的新方法。

Components

还有关于你的控制器。尝试使用控制器作为。下面是一些有用的工作人员休闲:)

Angular style guide