将$ scope.form与控制器分离

时间:2015-01-23 11:07:49

标签: angularjs unit-testing

在我的角度控制器中,我必须将某些表单字段重置为某个点(当其他字段发生更改时)。代码看起来像这样......

$scope.fieldCallback = function() {
  $scope.data.Field = undefined;
  $scope.form.field.$setPristine();
}

当我运行单元测试时,这当然会导致问题,因为如果您实际解析文档(当然在单元测试的情况下没有发生),form.field将只存在。我知道可以按照

的方式做点什么
var element = angular.element(...[some html]...);
$compile(element)($scope);

但这对我来说似乎不是一个好的解决方案。

有没有办法将控制器与html分离,所以我不必如上所述嘲笑这个?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果我正确地提出您的问题,您可以尝试在重点突出的情况下实施此功能

<form name="testForm" ... ... ng-blur="func()">
<input type="text" name="Field" />
</form

和js文件

$scope.func = function(){
   $scope.testForm.Field.$setPristine();
}

你可以在ngBlur

中直接使用expresion
ng-blur="focus=false"