【问题标题】:Cannot call $scope.form.$submitted in jasmine test: undefined无法在 jasmine 测试中调用 $scope.form.$submitted:未定义
【发布时间】:2015-01-26 21:54:32
【问题描述】:

Angularjs 1.3.0-beta.8

我正在尝试测试是否提交了表单。

这是测试

it ('should submit when I TELL IT TO DO SO!!!', function(){
  element.find('button').trigger('click'); // form button that calls submit funtion
  expect( element.isolateScope().validationFieldsForm.$valid ).toBe( true );
});

上述测试工作正常。我应该可以访问 $valid 。但是,当我再次运行相同的测试但这样修改时......

it ('should submit when I TELL IT TO DO SO!!!', function(){
  element.find('button').trigger('click'); // form button that calls submit funtion
  expect( element.isolateScope().validationFieldsForm.$submitted ).toBe( true );
});

上面的测试将导致“未定义”。事实上,如果我什至在指令中调用 $scope.myFormName.$submitted,这也不起作用,但是 $error、$valid、$invalid、$setValidity 等……都可以工作。

Angularjs 说 $submitted 应该在表单控件对象中可用。

angularjs form controller

【问题讨论】:

    标签: javascript angularjs unit-testing angularjs-directive jasmine


    【解决方案1】:

    您使用的版本中似乎不存在$submitted。请参阅docs for 1.3.0-beta.8。这是用version 1.3.0-beta.18添加的

    【讨论】:

    • 你是对的!我正在使用具有不同版本的两个分支并且混淆了我的选择。谢谢你提醒我。我的头好痛……
    猜你喜欢
    • 2016-10-15
    • 2020-11-20
    • 1970-01-01
    • 2023-03-29
    • 2016-03-07
    • 1970-01-01
    • 2014-03-23
    • 2017-08-19
    • 1970-01-01
    相关资源
    最近更新 更多