Caleb Porzio 1 月之前
父節點
當前提交
be9c5c5700
共有 1 個文件被更改,包括 5 次插入5 次删除
  1. 5 5
      packages/alpinejs/src/evaluator.js

+ 5 - 5
packages/alpinejs/src/evaluator.js

@@ -49,7 +49,7 @@ export function normalEvaluator(el, expression) {
 }
 }
 
 
 export function generateEvaluatorFromFunction(dataStack, func) {
 export function generateEvaluatorFromFunction(dataStack, func) {
-    return (receiver = () => {}, { scope = {}, params = [] } = {}) => {
+    return (receiver = () => {}, { scope = {}, params = [], context } = {}) => {
         let result = func.apply(mergeProxies([scope, ...dataStack]), params)
         let result = func.apply(mergeProxies([scope, ...dataStack]), params)
 
 
         runIfTypeOfFunction(receiver, result)
         runIfTypeOfFunction(receiver, result)
@@ -82,11 +82,11 @@ function generateFunctionFromString(expression, el) {
                 ["__self", "scope"],
                 ["__self", "scope"],
                 `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`
                 `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`
             )
             )
-            
+
             Object.defineProperty(func, "name", {
             Object.defineProperty(func, "name", {
                 value: `[Alpine] ${expression}`,
                 value: `[Alpine] ${expression}`,
             })
             })
-            
+
             return func
             return func
         } catch ( error ) {
         } catch ( error ) {
             handleError( error, el, expression )
             handleError( error, el, expression )
@@ -103,7 +103,7 @@ function generateFunctionFromString(expression, el) {
 function generateEvaluatorFromString(dataStack, expression, el) {
 function generateEvaluatorFromString(dataStack, expression, el) {
     let func = generateFunctionFromString(expression, el)
     let func = generateFunctionFromString(expression, el)
 
 
-    return (receiver = () => {}, { scope = {}, params = [] } = {}) => {
+    return (receiver = () => {}, { scope = {}, params = [], context } = {}) => {
         func.result = undefined
         func.result = undefined
         func.finished = false
         func.finished = false
 
 
@@ -112,7 +112,7 @@ function generateEvaluatorFromString(dataStack, expression, el) {
         let completeScope = mergeProxies([ scope, ...dataStack ])
         let completeScope = mergeProxies([ scope, ...dataStack ])
 
 
         if (typeof func === 'function' ) {
         if (typeof func === 'function' ) {
-            let promise = func(func, completeScope).catch((error) => handleError(error, el, expression))
+            let promise = func.call(context, func, completeScope).catch((error) => handleError(error, el, expression))
 
 
             // Check if the function ran synchronously,
             // Check if the function ran synchronously,
             if (func.finished) {
             if (func.finished) {