2016-07-13 3 views
0

Ich benutze Angular in meinem Projekt, aber ich stoße auf ein Problem.
Wenn ich ng-click="check=true" benutze, nach dem Absenden des Formulars, das div immer noch zeigt, verbirgt nicht, wie ich erwartet habe; während der Verwendung ng-click="alterCheck()" oder check=true zu dem ng-submit Ausdruck hinzufügen kann dieses Problem beheben. Was ist der mögliche Grund für dieses Problem?Was ist der Unterschied zwischen ng-click = "check = true" und ng-click = "alterCheck()"

<div ng-show="check && form.$invalid"></div> 
<!-- <form name="form" ng-submit="check=true && init()"> --> 
<form name="form" ng-submit="init()"> 
    <input type="text" ng-model="text" required/> 
    <!--  <input type="submit" ng-click="alterCheck()"/> --> 
    <input type="submit" ng-click="check=true"/> 
</form> 
+0

willst du das div oder Form verstecken? –

+0

@gayathri das div natürlich – jasonxia23

+0

Warte ... deine 'ng-show' Bedingung ist' check', also wird angezeigt, wenn 'check'' 'true' ist, was ist das Problem? – Icycool

Antwort

0

verstecken und Chek die Bedingungen

HTML

<form name="form" > 
      <input type="text" ng-model="text" required /> 
      <input type="submit" ng-click="do_something()" ng-disabled="form.$invalid"/> 
     </form> 
    <div ng-hide="!button_clicked && !form.$invalid" > Invalid Div </div> 

JS

var app = angular.module('plunker', []); 

app.controller('MainCtrl', function($scope) { 
    $scope.name = 'World'; 
    $scope.button_clicked = true; 
    $scope.do_something = function() { 
     alert("Clicked!"); 
     $scope.button_clicked = false; 

    } 
}); 

Referenz https://plnkr.co/edit/SIi5hVY3v4NO5MRoNwEL?p=preview

+0

Froh, dass Sie dieses Problem lösen. Ich weiß, dass eine Funktion wie 'do_something()' dieses Problem beheben kann. Aber ich bin verwirrt, warum 'ng-click =" check = true "' dieses Problem nicht beheben kann. – jasonxia23

+0

können Sie Ihren vollständigen Code veröffentlichen –

Verwandte Themen