我想为选择框输入一个onchange事件。
HTML-
<select id="basetype" ng-model="role.baseType"
ng-options="basePolicy"
ng-change="populateSettingsForBaseType()">
</select>
控制器事件处理程序-
private addBaseTypeChangeHandler(): void {
this.$scope.populateSettingsForBaseType = () => {
//someCode
};
}
我想验证事件处理程序是否称为onchange事件-
it('should add the certificate validator', function() {
spyOn($scope, 'populateSettingsForBaseType').and.callThrough();
const html = '<select id="basetype" ng-change="populateSettingsForBaseType()" ng-model="model"></select>';
const element = $compile(html)($scope);
const elem = element.find('select').trigger('change');
const ngModel = element.controller('ngModel');
ngModel.$viewValue = 'full';
$scope.$digest();
expect($scope.populateSettingsForBaseType).toHaveBeenCalled();
});
这不起作用。什么是触发事件并确保从UT调用处理程序的正确方法。