我使用AngularJS引导程序的下拉列表并想要更改元素的字体。我尝试使用ng-change进行此操作。
HTML:
<p ng-style="fontStyle">Test</p>
<div class="btn-group" dropdown is-open="status4.isopen" id="fontselect">
<button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" ng-disabled="disabled" ng-change="fontStyle={'font':'Arial'};">
{{ 'inv.theme.font' | translate }}<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#"><span style="font-family: Arial">Arial</span></a></li>
<li><a href="#"><span style="font-family: Tahoma">Tahoma</span></a></li>
<li><a href="#"><span style="font-family: Times New Roman">Times New Roman</span></a></li>
<li><a href="#"><span style="font-family: Verdana">Verdana</span></a></li>
<li><a href="#"><span style="font-family: Impact">Impact</span></a></li>
<li><a href="#"><span style="font-family: Comic Sans MS">Comic Sans MS</span></a></li>
我得到以下异常:
错误:[$ compile:ctreq]无法找到指令'ngChange'所需的控制器'ngModel'!
出了什么问题?谢谢
答案 0 :(得分:2)
ngChange
始终需要ngModel
出席(请参阅https://docs.angularjs.org/api/ng/directive/ngChange)。
所以,只需像这样添加一个ng-model
,就可以了:
<button type="button" ng-model="myVar" class="btn btn-default dropdown-toggle" data-toggle="dropdown" ng-disabled="disabled" ng-change="fontStyle={'font':'Arial'};">
{{ 'inv.theme.font' | translate }}<span class="caret"></span>
</button>