【发布时间】:2014-11-15 03:31:17
【问题描述】:
目前,我创建了一个附加到表单的指令。每当表单变脏时,我都会在尝试离开时弹出 window.onbeforeunload 的确认模式。现在我正在尝试编写一个 jasmine 测试,以确保在刷新/url 更改时调用 window.onbeforeunload。
var app = angular.directive('app');
app.directive('dialog',[$window, function() {
return {
restrict: 'A',
require: 'form',
link: function(scope, element, attrs, formCtrl) {
$window.onbeforeunload = function () {
if(formCtrl.$dirty) {
return 'Are you sure you want to leave this form';
}
};
}
};
}]);
茉莉花规范的一部分
beforeEach(inject(function(_$rootScope_,_$state_,_$window_) {
$rootScope = _$rootScope_;
$state = _$state_;
$window = _$window_;
spyOn($window, 'onbeforeunload')
}));
describe('Listen for window prompt', function () {
it('should be called on url/refresh change', function () {
window.location.reload();
expect($window.onbeforeunload).toHaveBeenCalled();
});
});
【问题讨论】: