emberjs/ember.js
`{{debugger}}` in template-only glimmer components has a misleading DX
已關閉
#17,962 建立於 2019年4月24日
BugDocumentationHelp Wanted
倉庫指標
- 星標
- (22,437 顆星)
- PR 合併指標
- (平均合併 11天 14小時) (30 天內合併 20 個 PR)
描述
When using {{debugger}} in template-only glimmer components, context is understandably null because there's no backing object (by design).
The user will see the following upon arriving at a breakpoint
The following DX issues need a little cleanup
contextno longer applies in this situation- the "For example...
context === get('this');" no longer applies in this situation
We may want to add something about get('@foo') to indicate the productive path for debugging these kinds of templates.
It might even be worth splitting this debugging path up (i.e., you'll end up in a template-only-specific debugger, or the standard debugger ) since, with the introduction of these components, the debugging mechanisms have diverged
function templateWithBackingObjectDebugCallback(context, get) {
console.info('Use `context`, and `get(<path>)` to debug this template.'); // for example...
context === get('this');
debugger;
}
function templateOnlyDebugCallback(get) {
console.info('Use `get(<@path>)` to debug this template.');
// for example... `get('@foo');`
debugger;
}
function debugCallback(context, get) {
if (context) templateWithBackingObjectDebugCallback(context, get);
else templateOnlyDebugCallback(get);
}