AngularJs ng-disabled无法在IE 9中正常工作吗?

aft*_*tab 5 cross-browser angularjs

我在ng-disabled AngularJs指令中遇到了问题,它在chrome中工作正常,但在IE 9中不工作,任何使它工作的解决方案将不胜感激。

main.html

<select kendo-drop-down-list k-data-text-field="'text'"
    k-option-label="'Select'" k-data-value-field="'id'"
    k-data-source="assessmentOptions" name="riskAssesLevelLookupCode"
    required id="riskAssesLevelLookupCode"
    maxlength="256"
    ng-attr-disabled="{{disableAssessmentType? 'disabled': ''}}"
    ng-model="riskAssessmentDTO.riskAssesLevelLookupCode"
></select>
Run Code Online (Sandbox Code Playgroud)

Dan*_*tes 5

我目前与存在同样的问题ng-disabled。不幸的是,我唯一想到的解决方法是处理ng-disabled控制器中的逻辑。因此,在您的情况下:

<select kendo-drop-down-list k-data-text-field="'text'"
    k-option-label="'Select'" k-data-value-field="'id'"
    k-data-source="assessmentOptions" name="riskAssesLevelLookupCode"
    Required id="riskAssesLevelLookupCode"
    maxlength="256"
    ng-attr-disabled="checkForDisabled()"
    ng-model="riskAssessmentDTO.riskAssesLevelLookupCode">
</select>
Run Code Online (Sandbox Code Playgroud)

并在控制器中:

checkForDisabled() {
    if(disableAssessmentType) {
       return "disabled";
    } else {
       return "";
    }
}
Run Code Online (Sandbox Code Playgroud)

再说一次,这不会保证IE9的正确行为。就我而言,我试图避免ng-click事件的功能。因此,我将标记设置为何false时设置了禁用状态,并根据该标记调用了该函数。像这样:

<button ng-click="callMethod()" ng-disabled="checkDisabled()">
  Click me if Im enabled
</button>
Run Code Online (Sandbox Code Playgroud)

控制器:

checkDisabled() {
   // Let's say it's disabled
   $scope.isDisabled = false; // set a global flag
   return false;
}

callMethod() {
   if($scope.isDisabled) {
        //disabled, do nothing maybe handle an error?
   } else {
        //functionality when it's enabled
   }
}
Run Code Online (Sandbox Code Playgroud)