2013-10-17 120 views
4

我有routeProvider,ng-view和controller。 簡單的模板與窗體和輸入。我可以在{{form.var1。$ dirty}}中看到$ dirty值 - 當我輸入時它會改變,但是如何在控制器代碼中訪問它?

HTML主

<!doctype html> 
<html ng-app="project"> 
<head> 
    <meta charset="utf-8"> 
    <title>Tabs</title> 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" /> 
    <link href="css/bootstrap.min.css" rel="stylesheet" media="screen"> 
    <script src="js/jquery.js"></script> 
    <script src="js/bootstrap.min.js"></script> 
    <script src="lib/angular/angular.js"></script> 
    <script src="js/dirty.js"></script> 
    <!--<script src="js/tab.js"></script>--> 
</head><body> 

      <div ng-view> 

      </div> 

</body> 
</html> 

模板

{{2+2}}<br> 
|{{var1}}|<br> 
|{{form.var1.$dirty}}| 
<a href="" ng-click="dodo1();">check dirty</a> 
<form class="form-horizontal" novalidate name="form" ng-submit="submit()"> 
    <input id="var1" name="var1" class="input" type="text" ng-model="var1"> 
</form> 

JS

angular.module('project',[]). 
    config(function($routeProvider) { 
     $routeProvider. 
      when('/', {controller:Ctrl1, templateUrl:'dirty_tab.html'}). 
      when('/tab1', {controller:Ctrl1, templateUrl:'dirty_tab.html'}). 
      otherwise({redirectTo:'/'}); 
    }); 

function Ctrl1($scope,$rootScope) { 
    $scope.var1=100; 
$scope.dodo1 = function() { 
    alert(form.var1.$dirty); 
} 
} 

警報顯示我 「未定義」。 如何獲取var1 $ dirty值?

+8

可能只是:'警報($ scope.form.var1 $髒);':) – Cherniv

+2

omg,我很愚蠢( – Sol

回答

11

由於Cherniv告訴你,你需要從$範圍對象訪問變量的意見

$scope.form.var1.$dirty