@tty6

Как заставить работать angularjs ng-click?

Не могу понять почему не работает нажатие на элементы списка. Ниже идёт код:

index.html
<div class="container" ng-app="keys">
  <ul ng-controller="KeysController">
    <li ng-repeat="key in keys" >
      <button ng-click="open(key) ">{{key.content}}</button>
    </li>
    <hr>
    <ng-switch on="anyItemOpened()">
        <div ng-switch-when="true">
          <div>
            {{opened.name}} 
          </div>
          <a ng-click="close()">close</a>
        </div>
    </ng-switch>
  </ul>
</div>


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

    app.controller('KeysController',function($scope){

        $scope.opened = undefined;
        $scope.open = function(key){
            if(this.isOpen(key)){
                this.opened = undefined;
            } else {
                this.opened = key;
            }
        };

        $scope.isOpen = function(key){
            return this.opened === key;
        };

        $scope.anyItemOpened = function(){
            return this.opened !== undefined;
        };

        $scope.close = function(){
            this.opened = undefined;
        };


        $scope.keys = [
            {name: 'item1', content: 'content1'},
            {name: 'item2', content: 'content2'},
            {name: 'item3', content: 'content3'}
        ]

    });

    app.controller('KeyController', function(){

    });
})();
  • Вопрос задан
  • 3031 просмотр
Решения вопроса 1
alexdevid
@alexdevid
web-developer
а там ошибки не выдает типа контроллер не найден и всё такое?
(function(){})(); это убрать попробуйте
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AMar4enko
@AMar4enko
Попробуйте для начала избавиться от switch, он не нужен.
<div ng-if="opened">
  <div>
    {{opened.name}} 
  </div>
  <a ng-click="close()">close</a>       
</div>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы