Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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
Javascript 如何通过从angular中的另一个模板调用来重置文本字段_Javascript_Jquery_Angularjs_Node.js_Templates - Fatal编程技术网

Javascript 如何通过从angular中的另一个模板调用来重置文本字段

Javascript 如何通过从angular中的另一个模板调用来重置文本字段,javascript,jquery,angularjs,node.js,templates,Javascript,Jquery,Angularjs,Node.js,Templates,在下面的图片中,第一个是安全问题,它是一个下拉列表,第二个是文本框,我想在更改问题时将其清空 但问题是它们都是不同的模板,它们都没有任何链接 我用一个控制器把regex放在它们之间。这很好用。但问题是,当我更改安全问题时,无法清除文本框 下面是我的安全问题下拉模板。模板非常大,所以只是模板代码的必需部分请参考数据的第二部分ng单击 <li data-ng-repeat="char in characteristic.getAvailableValues() | filter: {valu

在下面的图片中,第一个是安全问题,它是一个下拉列表,第二个是文本框,我想在更改问题时将其清空

但问题是它们都是不同的模板,它们都没有任何链接 我用一个控制器把regex放在它们之间。这很好用。但问题是,当我更改安全问题时,无法清除文本框

下面是我的安全问题下拉模板。模板非常大,所以只是模板代码的必需部分请参考数据的第二部分ng单击

<li data-ng-repeat="char in characteristic.getAvailableValues() | filter: {value: searchFilter}"
                        data-ng-class="{violatesCompatibilityRule: characteristic.doesValueViolateCompatibilityRule(char.id)}">
                        <a id="{{vm.productSpecIdPath}}---{{characteristic.characteristicSpecId}}---{{char.id}}---dropdownitem"
                        role="menuitem"
                        tabindex="-1"
                        href="javascript:void(0)"
                        data-ng-click="vm.selectCharacteristicValue(char.id); $root.securityQuestionRegex=characteristic.getSelectedValues()[0].regularExpression"
                        data-ng-bind="char.value">
                        </a>
哟。。我找到了解决办法 我在下拉模板“$root.emptyTextFlag”的ng点击中添加了一个额外的标志


当我从下拉列表中单击任何选项时,它会更改$root.emptyTextFlag=true的标志,因此在文本框中,它会清除文本,并在1/10秒后再次将其设置为false,这使我能够在文本框中键入。现在可以工作了。。我很高兴:):P

请忽略安全问题模板中分配给$root.securityQuestionRegex的值。您可以假设它是传递给它的任何正则表达式字符串:)
<input ng-if="characteristic.getDisplayName() == 'Security Answer'"
          type="text"
          placeholder="{{'LABELS.USERDEFINEDCHARACTERISTICS.PLACEHOLDER.TEXT' | translate}}"
          id="{{vm.productSpecIdPath}}---{{characteristic.getUserDefinedCharacteristicId()}}---{{$index}}---input"
          name="{{characteristic.getUserDefinedCharacteristicId()}}-{{$index}}"
          data-ng-model="value.value"
          data-ng-change="value.value=$root.textboxRegexValidation(value.value);"
          data-ng-disabled="characteristic.isReadOnly() || vm.isReserved"             
          data-ng-class="{ isReadOnly: characteristic.isReadOnly(), 'reduced-input-width': characteristic.getTooltipId(), dirty: characteristic.isDirty() }"
          sigma-validation-pattern="{{characteristic.getRegularExpression()}}"/>    
        $rootScope.textboxRegexValidation = function (obj: any) {


        if ($rootScope.securityQuestionRegex) {
            var regEx = new RegExp($rootScope.securityQuestionRegex);
            if (regEx.test(obj)) {
                return obj;
            } else {
                return obj.substring(0, obj.length - 1);
            }
        } else {
            return obj;
        }
    }
<a id="{{vm.productSpecIdPath}}---{{characteristic.characteristicSpecId}}---{{char.id}}---dropdownitem"
                        role="menuitem"
                        tabindex="-1"
                        href="javascript:void(0)"
                        data-ng-click="vm.selectCharacteristicValue(char.id); $root.securityQuestionRegex=characteristic.getSelectedValues()[0].regularExpression; $root.emptyTextFlag = true"
                        data-ng-bind="char.value">
                        </a>
 <input ng-if="characteristic.getDisplayName() == 'Security Answer'"
          type="text"
          placeholder="{{'LABELS.USERDEFINEDCHARACTERISTICS.PLACEHOLDER.TEXT' | translate}}"
          id="{{vm.productSpecIdPath}}---{{characteristic.getUserDefinedCharacteristicId()}}---{{$index}}---input"
          name="{{characteristic.getUserDefinedCharacteristicId()}}-{{$index}}"
          data-ng-model="value.value"
          data-ng-change="value.value= $root.textboxRegexValidation(value.value) "
          ng-value="value.value= $root.checkEmptyTextFlag() ?  '' : value.value"
          data-ng-blur= "$root.isMappingRuleTrigger(characteristic.getUserDefinedCharacteristicId()) ? vm.emitToggledEvent() : 'false'"
          data-ng-disabled="characteristic.isReadOnly() || vm.isReserved"             
          data-ng-class="{ isReadOnly: characteristic.isReadOnly(), 'reduced-input-width': characteristic.getTooltipId(), dirty: characteristic.isDirty() }"
          sigma-validation-pattern="{{characteristic.getRegularExpression()}}"/>    
$rootScope.textboxRegexValidation = function (obj: any) {
        if ($rootScope.securityQuestionRegex) {
            var regEx = new RegExp($rootScope.securityQuestionRegex);
            if (regEx.test(obj)) {
                return obj;
            } else {
                return obj.substring(0, obj.length - 1);
            }
        } else {
            return obj;
        }
    }; 

    $rootScope.checkEmptyTextFlag = function (obj: any) {
        if($rootScope.emptyTextFlag == true){
            setTimeout(function () {
                $rootScope.emptyTextFlag= false;
              }, 100);    
            return true;
        }
    }