Как в директиве angular получить доступ объекту?

Всем доброго времени суток.
Тема вопроса немного корявая.. Но попробую изложить суть вопроса.

Есть Приложение на ангуляре. И есть сервис cloudinary c их виджетом cloudinary.com/documentation/upload_widget
Для cloudinary есть angular обертка от самих cloudinary - но она не полная.. там например нет виджета. и т д.

Потому решил сделать сам... из описания установки к виджету
1) добавить файл на страницу
<script src=" http://widget.cloudinary.com/global/all.js" type="text/javascript"></script>

2) и дальше можно свободно использовать виджет
cloudinary.openUploadWidget({ cloud_name: 'demo', upload_preset: 'a5vxnzbp'}, 
      function(error, result) { console.log(error, result) });

  }, false);

и все))

Теперь пытаюсь сделать директиву...
Поместил нас страницу подключаемых js от cloudinary
<script src=" http://widget.cloudinary.com/global/all.js" type="text/javascript"></script>


и дальше сама директива
.directive(
    'cloudinaryFileUpload', [function () {
      return {
        restrict: 'A',
        require: '?ngModel',
        link: function (scope, element, attrs, ngModel) {
          if (!angular.isDefined(ngModel)) {
            return;
          }

          element.on(
            'click', function () {
              cloudinary.openUploadWidget(
               {upload_preset: '******'},
               function (error, result) {
               console.log(error, result)
               }
               );

            }
          );
        }
      }
    }]
  )

При нажатии на кнопку потом выводит ошибку

cloudinary.openUploadWidget - is not a function


Но если просто на страницу вставить код
cloudinary.openUploadWidget(...);

То виджет показывается....

В чем может быть моя проблема ума не приложу..
  • Вопрос задан
  • 225 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MNB
попробуйте window.cloudinary.openUploadWidget
Ответ написан
Комментировать
daruwanov
@daruwanov Автор вопроса
MNB Спасибо за ответ... но проблема была не в этом... Забыл отключить jquery cloudinary библиотеку. Которая использовалась ранее.. и там тоже отдается наружу объект cloudinary. И они друг друга перебивали.. И потому когда я просто на страницу вставлял вызов виджета сразу после подключения скрипта с виджетом - то он и вызывался - а потом шло перебивание на jquery и в директиве вызывался уже не тот объект.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы