在带有replace: true
的元素指令上使用ng-disabled会出现,并且在指令模板的根元素上导致角度错误地尝试组合两个禁用ng的条件。
HTML:
<body ng-controller="myCtrl">
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<my-submit-button ng-disabled="condition1"></my-submit-button>
</body>
JS:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.condition1 = true;
});
app.directive('mySubmitButton', function() {
return {
restrict: 'E',
replace: true,
controller: function($scope) {
$scope.condition2 = false;
},
template: '<button type="button" ng-disabled="condition2">My Button</button>'
};
});
渲染html中的结果:
<button type="button" ng-disabled="condition1 condition2">My Button</button>
注意condition1 condition2
之间没有&&
。
这是问题的jsBin example。
这是一个有角度的错误还是我错过了什么?
如果是角度的错误,有没有办法可以更优雅地处理它?将scope: {ngDisabled: '='}
添加到指令似乎不会阻止角度自动组合(错误地)condition1和condition2。
另外,如果它是一个有角度的错误,我该在哪里举报?
答案 0 :(得分:0)
结果显示replace: true
已被弃用,因此已知的错误无法修复。或者我从Why is replace deprecated in AngularJS?