【发布时间】:2016-03-26 15:46:07
【问题描述】:
我已经在 Angular 中编写了我的第一个指令,它是一个下拉菜单,这里是模板:
<select class='form-control' ng-model='vm.scope.fixtureToBeUpdated.awayTeam' ng-options='awayTeam.teamName for awayTeam in vm.scope.awayTeams track by awayTeam.teamId' required>
<option style='display: none' value=''>{{'SELECT' | translate }}</option>
</select>
这是在控制器中定义的地方:
function awayTeamsDropdown() {
return {
restrict: "E",
scope: true,
controller: "fixturesController",
templateUrl: "/views/awayteamsDropdown.html"
};
}
这是它的使用形式:
<form novalidate id="AddUpdateFixture" name="AddUpdateFixture" ng-submit="vm.addUpdateFixture()">
<!--addFixture or updateFixture-->
<div class="form-group">
<input type="hidden" ng-model="vm.scope.fixtureToBeUpdated.fixtureId"/>
</div>
<div class="form-group">
<label for="tournament">{{ 'TOURNAMENT' | translate }}</label>
<tournaments-dropdown></tournaments-dropdown>
</div>
<div class="form-group">
<label for="week">{{ 'WEEK' | translate }}</label>
<weeks-dropdown></weeks-dropdown>
</div>
<div class="form-group">
<label for="awayTeamName">{{ 'AWAY_TEAM' | translate }}</label>
<awayteams-dropdown></awayteams-dropdown>
</div>
<div class="form-group">
<label for="awayTeamScore">{{ 'POINTS' | translate }}</label>
<input id="awayTeamScore" type="text" class="form-control" name="awayTeamScore"
ng-model="vm.scope.fixtureToBeUpdated.awayTeamScore" ng-min="0" ng-max="77" />
<span ng-show="AddUpdateFixture.awayTeamScore.$dirty && AddUpdateFixture.awayTeamScore.$error.min" class="text-warning">{{ 'SCORE_MIN' | translate }}</span>
<span ng-show="AddUpdateFixture.awayTeamScore.$dirty && AddUpdateFixture.awayTeamScore.$error.max" class="text-warning">{{ 'SCORE_MAX' | translate }}</span>
</div>
<div class="form-group">
<button type="submit" ng-disabled="AddUpdateFixture.$invalid" class="button bg-darkBlue bg-active-darkBlue fg-white">{{ 'SAVE' | translate }}</button>
</div>
</form>
但在 ng-disabled 形式的按钮中,即使未从下拉列表中选择项目,也会将其设置为 false。如果下拉菜单中未选择任何内容,如何将 ng-disabled 设置为 true?
【问题讨论】:
-
基于this answer,您似乎必须编写一些代码来手动设置验证属性。
-
关于在这种情况下如何应用该示例的任何指示?
标签: javascript angularjs angular-directive