fix template_scope of undefined

pull/5839/head
Tan Li Hau 6 years ago
parent 200d452d05
commit b74b445373

@ -2,15 +2,16 @@ import Node from './shared/Node';
import Expression from './shared/Expression';
import Component from '../Component';
import TemplateScope from './shared/TemplateScope';
import { TemplateNode } from '../../interfaces';
import { Directive } from '../../interfaces';
export default class Action extends Node {
type: 'Action';
name: string;
expression: Expression;
uses_context: boolean;
template_scope: TemplateScope;
constructor(component: Component, parent: Node, scope: TemplateScope, info: TemplateNode) {
constructor(component: Component, parent: Node, scope: TemplateScope, info: Directive) {
super(component, parent, scope, info);
const object = info.name.split('.')[0];
@ -23,6 +24,8 @@ export default class Action extends Node {
? new Expression(component, this, scope, info.expression)
: null;
this.template_scope = scope;
this.uses_context = this.expression && this.expression.uses_context;
}
}

@ -12,7 +12,7 @@ export default function add_actions(
}
export function add_action(block: Block, target: string, action: Action) {
const { expression } = action;
const { expression, template_scope } = action;
let snippet;
let dependencies;
@ -29,7 +29,7 @@ export function add_action(block: Block, target: string, action: Action) {
const [obj, ...properties] = action.name.split('.');
const fn = is_contextual(action.component, action.expression.template_scope, obj)
const fn = is_contextual(action.component, template_scope, obj)
? block.renderer.reference(obj)
: obj;

Loading…
Cancel
Save