我有使用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 } }