4

式のバインドを単体テストできるように、ng-classを使用してクラスを式にバインドしようとしています。しかし、何かが足りないようです。

ボタン:

<li><a class=""  ng-click="onAddInterface()"><i class="icon-plus-sign"></i> add interface </a></li>

折りたたんだり展開したりするパネル:

<div class="collapse" ng-class="{in:showCreateNewInterfacePanel}"><div> 

実行される関数

$scope.onAddInterface=function(){
  $scope.showCreateNewInterfacePanel=true;
}

とにかくリンクをクリックしても何も起こりません。

私は何かが足りないのですか?

4

2 に答える 2

4

これが実際に関数を定義している方法なの$scope.onAddInterfaceか、それとも単なる例なのかはわかりません...それでも、次のようにする必要があります。

$scope.onAddInterface = function() {
  $scope.showCreateNewInterfacePanel = true;
}

アップデート

また、リンクと折りたたみ可能な要素が同じ$ scope/Controllerの下にあることを確認してください。

<div ng-controller="Ctrl">
  ...
  <a ng-click="onAddInterface()">add interface</a>
  ...
  <div class="collapse" ng-class="{in:showCreateNewInterfacePanel}"><div>
  ...
</div>

コントローラ:

function Ctrl($scope) {
  $scope.onAddInterface = function() {
    $scope.showCreateNewInterfacePanel = true;
  }
}​
于 2013-01-11T15:09:15.780 に答える
4

私は非常によく似た問題を抱えていましたが、引用符で囲んで「in」を付けることでこの問題を解決することができました。これは文字列であり、変数ではありません。

  ...
  <div class="collapse" ng-class="{'in':showCreateNewInterfacePanel}"><div>
  ...
于 2014-10-14T04:20:19.430 に答える