Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 当我键入一个字段时,它会自动键入另一个字段_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Angularjs 当我键入一个字段时,它会自动键入另一个字段

Angularjs 当我键入一个字段时,它会自动键入另一个字段,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,在我的项目中,我使用自定义键盘。问题是,当自定义键盘指令在两个输入字段中使用时,当我在一个输入字段中键入内容时,它会自动在另一个输入字段中键入。例如,有A和B是我的两个输入字段,两个ng型号不同,但相同我的自定义键盘指令名称,就像我的文本一样。现在,当我在输入字段中键入内容时,它会自动键入B。这是我的代码,我已经完成了,请检查并纠正我的问题 HTML代码 指令码 键盘及其布局通常由软件的某一层或操作系统启动的某个实用程序管理。这取决于你的决定 在Linux上,键盘布局为您所知,例如 与此没有直接

在我的项目中,我使用自定义键盘。问题是,当自定义键盘指令在两个输入字段中使用时,当我在一个输入字段中键入内容时,它会自动在另一个输入字段中键入。例如,有A和B是我的两个输入字段,两个ng型号不同,但相同我的自定义键盘指令名称,就像我的文本一样。现在,当我在输入字段中键入内容时,它会自动键入B。这是我的代码,我已经完成了,请检查并纠正我的问题

HTML代码

指令码


键盘及其布局通常由软件的某一层或操作系统启动的某个实用程序管理。这取决于你的决定

在Linux上,键盘布局为您所知,例如


与此没有直接联系。如果您使用它,一些人正在处理键盘布局,而浏览器(例如firefox或chrome,而不是您的应用程序)将知道键盘布局的更改,并且可能会收到显示服务器或浏览器的通知;例如,查看Xorg服务器在Linux上向浏览器发送的X11事件;在Windows上,请参阅。

中的函数和相关内容。该问题没有显示任何解决问题的尝试,我希望在比萨饼上添加更多配料,但这不是本网站的工作方式。你可能需要帮助,这完全没问题。但你应该更准确地告诉我们你的需求,告诉我们你目前的研究结果和你坚持的观点。也许是你项目中的一段代码,一篇比较的参考文章。。
<div class="">
        <input id="attrcls" type="text" ng-model="test"  style="width: 40%;" class="form-control input-md" ng-focus="onFocus('attrcls')" my-text>

        <input id="attrcls1" type="text" ng-model="test1" style="width: 40%;" class="form-control input-md" ng-focus="onFocus('attrcls')">
          <div class="keyboard-container"  ng-if="!focused">
              <ul ng-repeat="row in layout track by $index" style="list-style-type: none;">
                  <li ng-if="element.action != 'esc'" ng-repeat="element in row.row track by $index" class="btn" ng-click="keyPressed(element.value, element.action)">
                    {{element.value}}
                  </li>
                  <li ng-if="element.action == 'esc'" ng-repeat="element in row.row track by $index" class="btn" ng-click="keyPressed(element.value, element.action)"  ng-blur = "onBlur()">
                    {{element.value}}
                  </li>
              </ul>
          </div>
    </div>
$scope.keyPressed = function(value, action){
        $scope.someInput = value;
        $rootScope.$broadcast('keyPressed', $scope.someInput, action);
    }

      $scope.focused = true;
      $scope.onFocus = (id)=>{
        if($scope.focused){
            $scope.focused = false;
        }
      }
      $scope.onBlur = ()=>{
        $scope.focused = true;
      }
  .directive('myText', ['$rootScope', function($rootScope) {
    return {
        link: function(scope, element, attrs) {
            $rootScope.$on('keyPressed', function(e, val, action) {
                var domElement = element[0];
                if (document.selection) {
                    domElement.focus();
                    var sel = document.selection.createRange();
                    sel.text = val;
                    domElement.focus();
                }
                else if (domElement.selectionStart || domElement.selectionStart === 0) {
                    var startPos = domElement.selectionStart;
                    var endPos = domElement.selectionEnd;
                    var scrollTop = domElement.scrollTop;

                    if(action === 'del'){
                        if(startPos === endPos){
                            domElement.value = domElement.value.substring(0, startPos-1) + domElement.value.substring(endPos, domElement.value.length);
                            domElement.focus();
                            domElement.selectionStart = startPos - 1;
                            domElement.selectionEnd = startPos - 1;
                        }
                        else{
                            domElement.value = domElement.value.substring(0, startPos) + domElement.value.substring(endPos, domElement.value.length);
                            domElement.focus();
                            domElement.selectionStart = startPos;
                            domElement.selectionEnd = startPos;
                        }

                        domElement.scrollTop = scrollTop;
                    }else if(action === 'esc'){
                            $(".keyboard-container").css("display","none");
                            $("#attrcls").removeAttr('my-text');
                    }else{
                        domElement.value = domElement.value.substring(0, startPos) + val + domElement.value.substring(endPos, domElement.value.length);
                        domElement.focus();
                        domElement.selectionStart = startPos + val.length;
                        domElement.selectionEnd = startPos + val.length;
                        domElement.scrollTop = scrollTop;
                    }
                } else {
                    domElement.value += val;
                    domElement.focus();
                }
            });
        }
    }
}])