Использование выпадающего сервиса $ (AngularStrap)

#javascript #angularjs #twitter-bootstrap #angularjs-directive #angular-strap

#javascript #angularjs #twitter-bootstrap #angularjs-директива #angular-strap

Вопрос:

У меня возникли проблемы с использованием сервиса AngularStrap $dropdown . Как показывает следующий фрагмент, я могу заставить его правильно реагировать на события, но я не понял, как заполнить его программными средствами (т. Е. из директивы).

Вот фрагмент инициализации:

 var dropdown = $dropdown(element, {
    content: "Hello",
    show: false,
    trigger: "manual"
});
  

Я безуспешно пытался имитировать способ заполнения всплывающего окна (также приведенного в plunk в качестве ссылки). Я также пытался присвоить content свойству значение $scope.dropdown (см. здесь), но без удовлетворительного результата.

Дополнительная (но не блокирующая) проблема также возникла при первом вызове dropdown.hide() , который непоправимо вызывает TypeError: Cannot read property 'off' of undefined , в то время как первый popover.hide() выполняется без сбоев. Это может быть ошибка AngularStrap, но также и неправильное использование.

Заранее благодарю за любезную помощь!

Ответ №1:

Вот рабочий фрагмент, который показывает контекстное меню

http://plnkr.co/edit/tNAX7liFSNh71XcOUecs

 var dropdown = $dropdown(element, {
            show: false,
            trigger: "manual",
            html: true
        });

  dropdown.$scope.content = [ 
      {
        "text": "<i class="fa fa-globe"></i>amp;nbsp;Display an alert",
        "click": "alert("Holy guacamole!")"
      },
      {
        "divider": true
      },
      {
        "text": "Separated link",
        "href": "#separatedLink"
      }
    ];

    element.on("contextmenu", function(event) {
      event.preventDefault();
          console.log("dropdown right click");
          scope.$apply(function() {
            scope.dropdown_show = true;
      });
    });
  

Тем не менее, я все еще пытаюсь заставить «щелчок» работать.