相关疑难解决方法(0)

删除按钮上的确认对话框

我正在使用Angular的应用程序.

我目前有一个删除按钮,附有确认 onClick()

<a class="delete button" href="#" onClick="return confirm('Are you absolutely sure you want to delete?')" ng-click="remove_user(user, $event)" ></a>
Run Code Online (Sandbox Code Playgroud)

问题是当确认弹出时,"确定"和"取消"都删除了该项目,我想要取消"取消"以简单取消?

javascript html5 angularjs

18
推荐指数
4
解决办法
6万
查看次数

Javascript.confirm()和Angularjs Karma e2e测试

我有一个Angularjs应用程序,在执行某些操作之前使用简单的javascript确认.

控制器:

function TokenController($scope) {
  $scope.token = 'sampleToken';

  $scope.newToken = function() {
    if (confirm("Are you sure you want to change the token?") == true) {
      $scope.token = 'modifiedToken';
    }
  };
}
Run Code Online (Sandbox Code Playgroud)

视图:

<div id="tokenDiv">
  Token:{{token}} <button ng-click="newToken()">New Token</button>
</div>
Run Code Online (Sandbox Code Playgroud)

现在我想要进行端到端测试以检查在视图中是否正确替换了令牌.如何拦截javascript.confirm()呼叫,以便它不会停止执行测试?

测试:

it('should be able to generate new token', function () {
   var oldValues = element('#tokenDiv').text();
   element('button[ng-click="newToken()"]').click(); // Here the javascript confirm box pops up.
   expect(element('#tokenDiv').text()).not.toBe(oldValues);
});
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试重新定义window.confirm函数,但实际的调用抱怨它是未定义的.

我也想设置一个Jasmine间谍,window.confirm但是在下面的语法中,spyOn(window, 'confirm');它给了我一个错误,说你不能窥探null …

jasmine angularjs karma-runner angularjs-e2e

12
推荐指数
3
解决办法
1万
查看次数