2017-11-18 22 views
0

実際に私はコラージュプロジェクトのためのシステムをチェックアウトしています。これには7人の人がいて、それぞれの人は8時間働き、合計56時間です。 56時間、誰かが余分な時間を要した場合(合計3日シフト)、作業ごとに次のシフトで総時間が差し引かれます。合計時間が0になると、すべての入力フィールドが無効になります。これは角度が、直面するいくつかの構文上の問題を通じて、私のコードは角度jsの条件がある場合、入力フィールドを無効にする

angular.module('myApp', []) 
 
.controller('myCtrl', function() { 
 
    var vm = this; 
 
    var total = 56, 
 
    var checklist = [vm.spvc1,vm.spvc2,vm.spvc3,vm.spvc4,vm.spvc5,vm.spvc6,vm.spvc7]; 
 
    vm.check = function(){ 
 
    for(var i=0;i<=checklist.length; i++){  
 
    if(checklist[i]!==""){ 
 
     var totalcheck = total-8; 
 
    } 
 
    return totalcheck; 
 
    } 
 
    console.log(totalcheck); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl as main"> 
 
    <input type="text" ng-model="main.spvc1"> 
 
    <input type="text" ng-model="main.spvc2"> 
 
    <input type="text" ng-model="main.spvc3"> 
 
    <input type="text" ng-model="main.spvc4"> 
 
    <input type="text" ng-model="main.spvc5"> 
 
    <input type="text" ng-model="main.spvc6"> 
 
    <input type="text" ng-model="main.spvc7"> 
 
    </div>

である私はAで初心者ですngular、およびNG-無効を使用する方法を混同し、アドバンス

答えて

0

のおかげでは、最初のあなたはそれがゼロの場合の合計時間チェックのための計算を行った後、あなたの入力にあなたのコントローラで

<div ng-app="myApp" ng-controller="myCtrl as main"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc1"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc2"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc3"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc4"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc5"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc6"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc7"> 
</div> 

をNG-無効を追加する必要がありますそれに応じてdisableAllを設定します。

if(totaltime == 0){ 
    $scope.disableAll = true; 
} 
+0

意味、私はすべての入力にNG-無効を使用する必要がありますし、また、あなたが私のより良い理解の回答jsfieldをお願いすることができるように、ご回答いただきありがとうございますいくつかの構文エラーを表示するので、事前にありがとう – Codexx

+0

あなたが得るエラーを追加できますか?そうすれば、私はさらに助けることができます。 – NTP

+0

予期しないトークンvarと:[$ injector:modulerr] – Codexx

0

<input type="text" ng-disabled=" workhour > 56 ?true:false" ng-model="main.spvc1"> 
 
means if work hour is greaterthen 56 then disable 
 

 
replace the work hr with your object

+0

あなたの応答をありがとうございます。しかし、入力はそのトークン番号ではありません。私が使用する理由の人の:if(checklist [i]!== "") – Codexx

0
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
<div ng-app="myApp" ng-controller="myCtrl as main"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc1"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc2"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc3"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc4"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc5"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc6"> 
    <input type="text" ng-disabled="disableAll" ng-model="main.spvc7"> 
</div> 

angular.module('myApp', []) 
.controller('myCtrl', function() { 
    var vm = this; 
    var total = 56; 
    var checklist = [vm.spvc1,vm.spvc2,vm.spvc3,vm.spvc4,vm.spvc5,vm.spvc6,vm.spvc7]; 
    vm.check = function(){ 
    for(var i=0;i<=checklist.length(); i++){  
     if(checklist[i]!==""){ 
     var total = total-8; 
     } 
    } 
    if(total === 0){ 
     $scope.disableAll = true; 
    } 
    return total; 
    } 
    console.log(total); 
}); 
+0

私はそれがあなたを助けてくれることを願っています。あなたはforループの後に逃した}。 –

+0

JS Binのリンクを確認してください。 https://jsbin.com/yumuturowi/edit?html,js,output –

+0

ご回答いただきありがとうございますが、合計値48を修正したとします。ログインすると最後に無効にする必要がありますが、無効にはなりません。 。 – Codexx

関連する問題