Also arbeite ich an dieser Webanwendung. Ich habe eine Liste von Kategorien, in denen, wenn ein Element in der Liste nicht markiert ist, die Schaltflächen "Speichern" und "Veröffentlichen" deaktiviert sind. Ich verstehe, ng-disabled = !(ng-model name)
würde genau das tun, aber jedes Mal lade ich die Seite, die Schaltflächen sind deaktiviert, aber nicht aktiviert, wenn ich ein Element auf der Liste überprüfen.Deaktivieren Sie die Schaltfläche, wenn Kontrollkästchen in eckigen JS deaktiviert ist
<a ng-if="status() < 2" href="#" data-ng-click="publish(true)" class="btn btn-sm btn-block btn-success" ng-disabled="!cat.IsSelected">{{lbl.publish}}</a>
<a ng-if="status() == 2" href="#" data-ng-click="save()" class="btn btn-sm btn-block btn-primary" id="check_box" ng-disabled="!cat.IsSelected">
{{lbl.save}}
</a>
<span ng-if="status() < 2">
<a href="#" ng-click="save()" class="btn btn-sm btn-block btn-primary" id="check_box" ng-disabled="!cat.IsSelected">
{{lbl.save}}
</a>
</span>
<ul class="categories-list">
<li ng-repeat="cat in lookups.CategoryList">
<label><input type="checkbox" id="cat-{{cat.OptionValue}}" data-ng-model="cat.IsSelected"/> {{cat.OptionName}}</label>
</li>
<li ng-if="lookups.CategoryList.length == 0" class="item-empty">{{lbl.empty}}</li>
</ul>
JS-Code:
$scope.post.Categories = [];
if ($scope.lookups.CategoryList != null) {
for (var i = 0; i < $scope.lookups.CategoryList.length; i++) {
var cat = $scope.lookups.CategoryList[i];
if (cat.IsSelected) {
var catAdd = { "IsChecked": false, "Id": cat.OptionValue, "Title": cat.OptionName };
$scope.post.Categories.push(catAdd);
}
}
}
'ng-disabled' (' disable' Attribut) funktioniert nicht auf Anker-Tag. –
Sie "deaktivieren" nicht wirklich ein '' Element. Vielleicht kann die Logik in 'save()' Ihren Zustand überprüfen und einfach seine Logik nicht ausführen? – David