КАЖДЫЙ РАЗ Я просматриваю объект в консоли, и я хочу его развернуть, поэтому становится утомительно щелкать стрелку, чтобы делать это КАЖДЫЙ РАЗ :) Есть ли ярлык или настройка, чтобы это выполнялось автоматически?
google-chrome-devtools
Джереми Смит
источник
источник
Ответы:
Хотя упомянутое решение
JSON.stringify
довольно хорошо для большинства случаев, оно имеет несколько ограничений.console.log
может элегантно заботиться о таких объектах.Вот решение, которое решает оба вышеперечисленных творчески (ab), используя
console.group
:Сейчас работает:
Вы получите что-то вроде:
Значение
maxDepth
можно отрегулировать до желаемого уровня, а за пределами этого уровня вложенности - расширенный журнал вернется к обычному console.logПопробуйте запустить что-нибудь вроде:
Также обратите внимание, что
console.group
это нестандартно.источник
Рассмотрите возможность использования console.table () .
источник
Чтобы развернуть / свернуть узел и все его дочерние элементы,
(обратите внимание, что хотя в документации инструментов разработчика перечислены Ctrl + Alt + Click, в Windows все, что требуется, это Alt + Click).
источник
Возможно, это не лучший ответ, но я делал это где-то в своем коде.
Обновление :
Используйте
JSON.stringify
для автоматического расширения объекта:Вы всегда можете создать функцию быстрого доступа, если вам больно набирать все это:
Предыдущий ответ:
тогда вместо:
Ты сделаешь:
Не лучшее решение, но подходит для моего использования. Более глубокие объекты не будут работать, так что это можно улучшить.
источник
pretty(a)
на всех сайтах в любое время;)console.table
мелкое расширение, «Option / Alt + Click» - это ручной процесс, и писать пользовательскую функцию, использующую underscore.js, не стоит накладные расходы)option + Щелкните на Mac. Только что обнаружил это сейчас и сделал свою неделю! Это так же раздражает, как и все
источник
Вот модифицированная версия ответа lorefnon, которая не зависит от underscorejs:
источник
Я действительно не поклонник того, как Chrome и Safari консольные объекты (чрезмерно спроектированные). Консоль по умолчанию уплотняет объект, сортирует ключи объекта при раскрытии объекта и показывает внутренние функции из цепочки прототипов. Эти функции должны быть включены в настройки. Разработчики по умолчанию, вероятно, заинтересованы в необработанных результатах, чтобы они могли проверить, правильно ли работает их код; и эти функции замедляют разработку и дают неверные результаты сортировки.
Как развернуть объекты в консоли
рекомендуемые
console.log(JSON.stringify({}, undefined, 2));
Также можно использовать как функцию:
«Option + Click» (Chrome на Mac) и «Alt + Click» (Chrome в Window).
Однако он поддерживается не всеми браузерами (например, Safari), и консоль по-прежнему печатает цепочки типов прототипов, ключи объектов автоматически сортируются, когда расширенный и др.
Не рекомендуется
Я бы не рекомендовал ни один из лучших ответов
console.table()
- это только неглубокое расширение и не расширяет вложенные объектыНапишите пользовательскую функцию underscore.js - слишком много накладных расходов для того, что должно быть простым решением
источник
Вот мое решение - функция, которая выполняет итерацию всех свойств объекта, включая массивы.
В этом примере я перебираю простой многоуровневый объект:
У вас также есть возможность исключить итерацию, если свойства начинаются с определенного суффикса (например, $ для угловых объектов)
discoverProperties = function (obj, level, excludePrefix) { var indent = "----------------------------------------".substring(0, level * 2); var str = indent + "level " + level + "\r\n"; if (typeof (obj) == "undefined") return ""; for (var property in obj) { if (obj.hasOwnProperty(property)) { var propVal; try { propVal = eval('obj.' + property); str += indent + property + "(" + propVal.constructor.name + "):" + propVal + "\r\n"; if (typeof (propVal) == 'object' && level < 10 && propVal.constructor.name != "Date" && property.indexOf(excludePrefix) != 0) { if (propVal.hasOwnProperty('length')) { for (var i = 0; i < propVal.length; i++) { if (typeof (propVal) == 'object' && level < 10) { if (typeof (propVal[i]) != "undefined") { str += indent + (propVal[i]).constructor.name + "[" + i + "]\r\n"; str += this.discoverProperties(propVal[i], level + 1, excludePrefix); } } else str += indent + propVal[i].constructor.name + "[" + i + "]:" + propVal[i] + "\r\n"; } } else str += this.discoverProperties(propVal, level + 1, excludePrefix); } } catch (e) { } } } return str; }; var point = { x: 5, y: 2, innerobj : { innerVal : 1,innerVal2 : 2 }, $excludedInnerProperties : { test: 1}, includedInnerProperties : { test: 1} }; document.write("<pre>" + discoverProperties(point,0,'$')+ "</pre>");
Вот результат работы функции:
Вы также можете внедрить эту функцию на любую веб-страницу, скопировать и проанализировать все свойства, попробовать на странице Google с помощью команды chrome:
Также вы можете скопировать вывод команды с помощью команды chrome:
источник
если у вас большой объект, JSON.stringfy выдаст ошибку Uncaught TypeError: преобразование круговой структуры в JSON, вот трюк, чтобы использовать его модифицированную версию
теперь вы можете использовать
JSON.stringifyOnce(obj)
источник
Это работа, но она работает для меня.
Я использую в том случае, когда элемент управления / виджет автоматически обновляется в зависимости от действий пользователя. Например, при использовании twitter typeahead.js, когда вы фокусируетесь за окном, раскрывающийся список исчезает, и предложения удаляются из DOM.
В инструментах разработчика щелкните правой кнопкой мыши узел, который вы хотите развернуть, включить разрыв при ... -> модификации поддерева , это отправит вас в отладчик. Продолжайте нажимать F10 или Shift + F11, пока dom не изменится. Как только это изменится, вы можете проверить. Поскольку отладчик активен, пользовательский интерфейс Chrome заблокирован и не закрывает раскрывающийся список, а предложения все еще находятся в DOM.
Очень удобно при устранении проблем с компоновкой динамически вставляемых узлов, которые постоянно вставляются и удаляются.
источник
Другой более простой способ был бы
Я пробовал это для простых объектов.
источник
Вы можете просмотреть свой элемент, открыв document.getElementsBy ..., а затем щелкните правой кнопкой мыши и скопируйте полученный объект. Например:
document.getElementsByTagName('ion-app')
возвращает объект javascript, который можно скопировать и вставить в текстовый редактор, и делает это полностью.Еще лучше: щелкните правой кнопкой мыши полученный элемент - «Изменить как html» - «Выбрать все» - «Копировать» - «Вставить»
источник
Вы можете увидеть здесь:
https://www.angularjswiki.com/angular/how-to-read-local-json-files-in-angular/
Самый простой способ:
Вы также должны добавить в tsconfig следующий код:
Я не претендую на владение этим, просто ссылаюсь на полезный источник.
источник