2016-05-19 7 views
1

にこれは簡単にスコープの関数を宣言することによって行うことができる問題ですが、作るためのより良い方法があれば、私は思っていたこれを簡単自動null値はAngularJS

コードは次のとおりです。

<!DOCTYPE html> 
<html ng-app="myApp"> 

    <head> 
    <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css"> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.9/angular.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
    </head> 

    <body ng-controller="myCtrl"> 
    <input type="checkbox" ng-model="activate" id="activate"> ACTIVATE <br /> 
    <input type="text" ng-model="first" ng-disabled="!activate"> 
    <input type="text" ng-model="second" ng-disabled="!activate"> 
    <!-- <span id="clickMe">Click Me!</span> --> 
    <script type="text/javascript"> 
     app = angular.module('myApp', []); 
     app.controller('myCtrl', function($scope, $timeout){ 

     }); 
    </script> 
    </body> 
</html> 

これはそうです。他の2つのフィールドは、チェックボックスがオンの場合は有効になり、チェックボックスがオフの場合は無効になります。私が望むのは、無効にすると、フィールドが空白または空白になるようにすることです。ここで

は例です:http://plnkr.co/edit/2EPuhRiR9OncV8z7q018?p=preview

答えて

2

は、ビュー内で直接多くのロジックに置くのは良い習慣ではないという事実を無視して、技術的な解決策は次のようになります。

<input type="checkbox" ng-model="activate" id="activate" ng-change="sameAsAbove(first, second); value = null"> ACTIVATE <br /> 
<input type="text" ng-model="value.first" ng-disabled="!activate"> 
<input type="text" ng-model="value.second" ng-disabled="!activate">