无法在茉莉花测试中调用 $scope.form.$submitted: undefined

Cannot call $scope.form.$submitted in jasmine test: undefined

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 );
});

上面的测试将导致 'undefined'。事实上,如果我什至在指令中调用 $scope.myFormName.$submitted 这也不起作用,但是 $error、$valid、$invalid、$setValidity 等都有效。

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

angularjs form controller

您使用的版本中似乎不存在 $submitted。参见 docs for 1.3.0-beta.8. This was added with version 1.3.0-beta.18