2016-09-21 1 views
0

私は角度を覚えており、わからない問題があります。私は同様のエラーメッセージのための他の解決策を見てきました、そして、それは範囲を示す傾向がありますが、私はそれがここで問題であるとは見ません。角度を使用してボタンを押すと、v2.showは機能エラーではありません

私がしようとしていることは、あることが真実になるまで、divの中にいくつかのものを隠すことです。この場合、私はボタンを押して、いくつかのテキストボックスを表示させたいです。しかし、私は現在、ボタンを押したときに値をtrueに設定する関数がエラーのために機能しないという事実に固執しています。エラーが

TypeError: v2.show is not a function 
at fn (eval at compile (angular.min.js:233), <anonymous>:4:266) 
at b (angular.min.js:126) 
at e (angular.min.js:276) 
at m.$eval (angular.min.js:145) 
at m.$apply (angular.min.js:146) 
at HTMLButtonElement.<anonymous> (angular.min.js:276) 
at Sf (angular.min.js:37) 
at HTMLButtonElement.d (angular.min.js:37)(anonymous function) @ angular.min.js:118(anonymous function) @ angular.min.js:90$apply @ angular.min.js:146(anonymous function) @ angular.min.js:276Sf @ angular.min.js:37d @ angular.min.js:37 

私のコードは

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

<head> 
    <link rel="stylesheet" type="text/css" href="bootstrap.min.css" /> 
</head> 

<body> 
    <div ng-controller='TestIdController as tiCtrl'> 
     {{tiCtrl.isShown}} 
     <button ng-click="tiCtrl.show()">{{tiCtrl.statement}}</button> 
     <div ng-show="tiCtrl.isShown" ng-repeat="reqs in tiCtrl.requirements"> 
      <button>{{reqs}}</button> 
     </div> 
    </div> 
    <script type="text/javascript" src="angular.min.js"></script> 
    <script type="text/javascript" src="app.js"></script> 

</body> 

</html> 

であると私はボタンを押して上のエラーを取得していますなぜapp.jsは

(function(){ 
    var app = angular.module('screenPop',[]); 

    var test_login = ['Identity','userName','Password']; 

    app.controller('TestIdController', function(){ 
     this.requirements = test_login; 
     this.statement = "Validate Credentials"; 
     this.isShown = false; 
     this.show = function(){ 
      this.show = true; 
     }; 
    }); 

})(); 

任意のアイデアですか?

+0

あなたは関数としてだけでなく、ここでは変数 'this.show =真作用する' this.show'を持っているので、 '、あなたは機能&変数 –

答えて

1

は、おそらくこのチャンク

this.show = function(){ 
    this.show = true; 
}; 

あなたがshowと呼ばれる機能を持っているし、その関数内で、ブール値に設定してみてください。ブール名または関数名を変更します。

showではなく、isShownという変数を設定することをお勧めします。

this.isShown = false; 
this.show = function(){ 
    this.isShown = true; 
}; 
+0

に別の変数を使用する必要がありますうん...今私は感じます愚か。私はあまりにも長いものを見てきたと思う。私はより健全でおっとするように名前を変更しました。ありがとう。 –

+0

@ChrisJones - 私たちすべてに起こる - これと同じことが少し前に起こった、エラーはすぐに飛び出さない:D – tymeJV

+0

いいえ、そして時にはrubby duckyingが助けにならない...私まだ私が私が見たと思ったものを文字通り読み込んでいたその状態にあった –

関連する問題