我使用node-red并注入了一些json变量,我只能在函数范围内看到它们,如何在函数外部使用它们。
我尝试过angularjs控制器,但是它不起作用,也许我没有正确使用它
<!DOCTYPE html>
<html>
<body>
<div>{{msg.payload}}</div>
<div>{{value}}</div><br>
<div>{{value1}}</div><br>
<div>{{value2}}</div><br> // i can see the contents
<md-button ng-click="send({payload:action()})">
</md-button>
<script>
(function(scope) {
scope.$watch('msg', function(msg) {
if (msg.payload.image) {
scope.value2 = msg.payload.image;
}
if (msg.payload.text) {
scope.value1 = msg.payload.text;
}
if (msg.payload.volume) {
scope.value = msg.payload.volume;
}
scope.action = function() {
return [scope.value, scope.value1, scope.value2];
}
});
})(scope);
</script>
</body>
</html>
答案 0 :(得分:0)
变量仅在创建它们的范围内(和在“子作用域”中)有效且可访问。
如果您想要一些全局变量,则可以创建一个“全局变量”(仅适用于google)。
但是,由于您使用的是Angular(尽管是旧的“ angularjs”而不是新的“ Angular”版本),所以有更好的方法。在Angular(新的,不知道旧的)中,您可以创建和使用一种称为“服务”的东西。这些是某种可全局访问的对象,可以容纳许多变量和东西,供代码中的其他地方使用。
但是:根据您的用例,您还可以在外部angular-component上创建变量,并将其插入/传递到child组件中。这样既可以使用又可以访问它。了解有关为此目的绑定/ 2方式绑定的更多信息。