Вопрос по komodoedit, komodo – Поддержка JQuery работает в HTML, но не в .JS?

1

Попытка komodo для создания виджета jquery ui. Я включил ссылку на jquery api, и в файле .html он прекрасно работает. Затем я открываю свой файл widget.js и набираю текст;

(function($) {

с последующим

$.

Я ожидаю получить здесь intellisense, но вместо этого получаю:

Доработки не найдены. (Ошибка определения завершения)

Это расширение файла? Виджеты пользовательского интерфейса jquery просто не поддерживаются?

При копании далее кажется, что проблема заключается в том, что файл .js никоим образом не ссылается на jquery, поэтому он не добавлен в intellisense. К сожалению, не знаю, как решить эту проблему. XeroxDucati

Ваш Ответ

2   ответа
2

The problem is that Komodo doesn't know the context of the anonymous function call - in other words Komodo is not smart enough to know that "jQuery" == "$" in this case.

But all is not lost, you can help out Komodo by telling it what the type is in such cases. Here is the example that uses jsDoc to help define the type of "$":

   (/** @param {jQuery} $ */function($) {
       $. // will show jQuery completions now
   })(jQuery)

;

0

(function()
  {
  $. //works
  jQuery. //works
  ...
  }
);

Комодо знает и $, и jQuery как глобальные переменные. Локальная область имеет приоритет, поэтому $ становится неопределенным. И наоборот, если вы передадите jQuery, $ будет работать, но jQuery не будет:

(function(jQuery)
  {
  $. //works
  jQuery. //does not
  ...
  }
);
Имеет смысл, но нарушает фабрику jQuery UI виджетов, не так ли? XeroxDucati
$ === jQuery, можно ли сохранить фабрику, пожертвовав автозаполнением jQuery, как во втором примере кода?

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