本文整理汇总了TypeScript中@glimmer/runtime.CapturedNamedArguments类的典型用法代码示例。如果您正苦于以下问题:TypeScript CapturedNamedArguments类的具体用法?TypeScript CapturedNamedArguments怎么用?TypeScript CapturedNamedArguments使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CapturedNamedArguments类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: processComponentArgs
export function processComponentArgs(namedArgs: CapturedNamedArguments) {
let keys = namedArgs.names;
let attrs = namedArgs.value();
let props = Object.create(null);
let args = Object.create(null);
props[ARGS] = args;
for (let i = 0; i < keys.length; i++) {
let name = keys[i];
let ref = namedArgs.get(name);
let value = attrs[name];
if (typeof value === 'function' && value[ACTION]) {
attrs[name] = value;
} else if (ref[UPDATE]) {
attrs[name] = new MutableCell(ref, value);
}
args[name] = ref;
props[name] = value;
}
props.attrs = attrs;
return props;
}
示例2: handler
handler(event: Event): boolean {
let { actionName, namedArgs } = this;
let bubbles = namedArgs.get('bubbles');
let preventDefault = namedArgs.get('preventDefault');
let allowedKeys = namedArgs.get('allowedKeys');
let target = this.getTarget();
let shouldBubble = bubbles.value() !== false;
if (!isAllowedEvent(event, allowedKeys.value())) {
return true;
}
if (preventDefault.value() !== false) {
event.preventDefault();
}
if (!shouldBubble) {
event.stopPropagation();
}
run(() => {
let args = this.getActionArgs();
let payload = {
args,
target,
name: null,
};
if (typeof actionName[INVOKE] === 'function') {
flaggedInstrument('interaction.ember-action', payload, () => {
actionName[INVOKE].apply(actionName, args);
});
return;
}
if (typeof actionName === 'function') {
flaggedInstrument('interaction.ember-action', payload, () => {
actionName.apply(target, args);
});
return;
}
payload.name = actionName;
if (target.send) {
flaggedInstrument('interaction.ember-action', payload, () => {
target.send.apply(target, [actionName, ...args]);
});
} else {
assert(
`The action '${actionName}' did not exist on ${target}`,
typeof target[actionName] === 'function',
);
flaggedInstrument('interaction.ember-action', payload, () => {
target[actionName].apply(target, args);
});
}
});
return shouldBubble;
}
示例3: getTarget
getTarget() {
let { implicitTarget, namedArgs } = this;
let target;
if (namedArgs.has('target')) {
target = namedArgs.get('target').value();
} else {
target = implicitTarget.value();
}
return target;
}
示例4: getEventName
getEventName() {
return this.namedArgs.get('on').value() || 'click';
}