使用JavaScript

时间:2018-06-04 10:21:43

标签: javascript angularjs

我想使用JavaScript代码

使AngularJS表单字段变脏

这是HTML代码



<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<body ng-app="">

  <p>Try writing in the input field:</p>

  <form name="myForm">
    <input name="myInput" ng-model="myInput" required>
  </form>

  <p>The input's valid state is:</p>
  <h1>{{myForm.myInput.$valid}}</h1>

</body>

</html>
&#13;
&#13;
&#13;

我尝试使用

document.querySelector('input[name="myInput"]').value="123",
点击,聚焦但没有一个似乎工作/覆盖它。请指导我如何不使用使用AngularJS函数和使用纯JavaScript。

我想将输入的有效状态更改为true

2 个答案:

答案 0 :(得分:0)

要从控制台与角色App进行交互,您需要使用

var scope = angular.element(document.getElementById('yourElementId')).scope();

这将为您带来所需的范围,然后将元素设置为脏,您可以使用

scope.myForm.myInput.$setViewValue(scope.myForm.myInput.$viewValue);

答案 1 :(得分:0)

使用:

   var $body = angular.element(document.body);
   var $scope = $body.data().$scope;
   $scope.myForm.myInput.$setDirty();
   $scope.$apply();

DEMO

&#13;
&#13;
setTimeout(function() {
   var $body = angular.element(document.body);
   var $scope = $body.data().$scope;
   $scope.myForm.myInput.$setDirty();
   $scope.$apply();
}, 1000);
&#13;
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<body ng-app="">

  <p>Watch dirty state flash from false to true</p>

  <form name="myForm">
    <input name="myInput" ng-model="myInput" required>
  </form>

  <p>The input dirty state is:</p>
  <h1>{{myForm.myInput.$dirty}}</h1>

</body>

</html>
&#13;
&#13;
&#13;