如何以编程方式访问页面片段自定义属性?

时间:2017-08-25 06:12:00

标签: google-app-maker

如何在其中一个窗口小部件的事件处理程序中访问页面片段的自定义属性?例如,我尝试在页面片段本身的OnLoad事件中访问它们,如下所示:

function SumBoxOnDataLoad (widget) {
    widget.descendants.TextBox.value = Currencies [widget.properties.currency]+widget.properties.value;
}

... widget.properties未定义。根据{{​​3}},即使我使用指向相同网页片段的widget.root,也没有任何类似的属性可供使用。

1 个答案:

答案 0 :(得分:3)

这取决于你想要做什么。基本上,有两个主要用例:

  1. 解决方法在App Maker中缺少全局可绑定变量。页面片段本身(不是特定页面上的页面片段的实例)具有自己的属性,可以在整个应用程序中全局使用。这个黑客/功能在Starter App template中用于跟踪应用级别的菜单状态。
  2. ...
    var x = app.pageFragments.MyPageFragment.properties.MyCustomProperty;
    ...
    
    1. 使用特定页面片段实例的属性:
    2. // access from current page:
      var x = app.currentPage.descendants.MyPageFragmentInstance.properties.MyCustomProperty;
      
      // ...or
      var x = app.pages.MyPage.descendants.MyPageFragmentInstance.properties.MyCustomProperty;
      
      // access in page fragment instance's event (onAttach for example)
      var x = widget.parent.properties.MyCustomProperty;
      
      // access in page fragment instance descendant's event
      var x = widget.root.parent.properties.MyCustomProperty;
      

      进一步阅读:

      Page Fragment Custom Properties