0
它对使用replace: true
的元素指令以及指令模板的根元素上的ng-disabled显示,导致角度错误地尝试合并两个禁用的条件。对指令元素(替换为true)和指令模板中的ng-disabled进行不正确的组合
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来停止角度。
此外,如果它是一个角度错误,我该在哪里报告?
可能的重复[Explain replace = true in Angular Directives(Deprecated)](http://stackoverflow.com/questions/22497706/explain-replace-true-in-angular-directives-deprecated )。请参阅[AngularJS问题#7636](https://github.com/angular/angular.js/issues/7636)。 – georgeawg