AngularJs ng-disabled 在 IE 9 中不起作用有什么解决办法吗?

AngularJs ng-disabled is not working in IE 9 any solution?

我对 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>

我目前遇到了与 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>

在控制器中:

checkForDisabled() {
    if(disableAssessmentType) {
       return "disabled";
    } else {
       return "";
    }
}

话又说回来,这不能保证在 IE9 上的正确行为。在我的例子中,我试图避免 ng-click 事件的功能。因此,当禁用设置时,我将一个标志设置为 false,并根据该标志调用该函数。像这样:

<button ng-click="callMethod()" ng-disabled="checkDisabled()">
  Click me if Im enabled
</button>

控制器:

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
   }
}