如何从JSON对象中触发函数

时间:2018-09-27 03:31:25

标签: javascript json typescript

我有一个功能,它是从一个程序创建的,然后在另一个程序的UI中创建。第一个程序构建代码,第二个程序呈现代码。

这是问题。

JSON对象包含一个FUNCTION作为字符串,因为它是从NODE SERVICE进入Angular 5.x UI的方式

这是JSON

{
  "test": {
  "trigger": "load",
  "functionName": [
           "function(){if(1 === 1){console.log('hello');} else {console.log('goodbye');}" **<== CORRECTED the original single = that Johnathan caught.**
    ]
  }
}

这是显示它的最简单方法。是的,{}周围有“”,它是INVALID JSON,但我们在后端使用的状态机以这种方式在客户端上对其进行渲染(消毒)。

最重要的是:我要实现的功能是能够调用标准JavaScript函数,例如onBLur,onChange,onHover,onMouseOver等...某些功能无关紧要...但是我们绝对需要onBlur和onChange

我在Angular 1.6中使用app.js和路由器进行了此操作,由此我在JSON对象内调用了函数,该对象在控制器上调用了该函数。哇!使用 $ scope。$ parent.functionName(arg1如果有的话){}

很容易

我只是写道:

....,
onEntry: (function() {
     do something cool here...
}),
....

那么,用TypeScript,我怎么能实现同一件事?

我希望我清楚我的问题吗?

谢谢

更新!!!

这是DEV控制台捕获ACTUAL代码的屏幕截图,很抱歉,昨晚是从内存中获取的。

Dev Console showing JSON with function

希望这有助于澄清我的问题。

1 个答案:

答案 0 :(得分:1)

像这样,但请确保您使用===而不是=来满足您的条件,并且将所有括弧括起来。

let myTest = {
    "test": {
        "trigger": "load",
        "functionName": function(){if(1 === 1){console.log('hello');} else {console.log('goodbye');}}
    }
};

myTest.test.functionName();