首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误:“无法在没有为控件XYZ定义默认聚合的情况下添加直接子项”

错误:“无法在没有为控件XYZ定义默认聚合的情况下添加直接子项”
EN

Stack Overflow用户
提问于 2018-06-06 02:01:01
回答 3查看 7.8K关注 0票数 4

我试图通过检查其他有类似错误的问题来找到解决方案,但都不能帮助我。我尝试在沙箱中从我的应用程序运行Component.js。运行index.html运行得很好。我的出发点是这样的:

代码语言:javascript
复制
<mvc:View
  xmlns="sap.m"
  xmlns:mvc="sap.ui.core.mvc"
  controllerName="com.sap.build.standard.qrCodeScanner.controller.Home"
>
  <Page id="home"
    class="customHomeBackground"
    showHeader="true"
    title="Home"
    showFooter="true"
  >
    <content>
      <FlexBox
        class="customFlexBoxHome"
        justifyContent="Center"
        alignItems="Center"
        wrap="Wrap"
      >
        <GenericTile class="customTile"
          header="Scan invitations"
          subheader="from your customers"
          frameType="OneByOne"
          press="_onGenericTilePress1"
        >
          <TileContent>
            <ImageContent src="sap-icon://bar-code"/>
          </TileContent>
        </GenericTile>
      </FlexBox>
    </content>
    <footer/>
    <headerContent/>
    <subHeader/>
    <customHeader/>
  </Page>
</mvc:View>

它只是一个简单的GenericTile。我无法访问此视图,因为

错误:无法在没有为控件sap.m.GenericTile定义默认聚合的情况下添加直接子级

访问其他视图是没有问题的。因此,当我添加一个按钮而不是GernericTile +的孩子时,它工作得很好。

我也尝试添加一个these样例磁贴,但同样的错误。GenericTile有什么问题

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-06 13:40:29

搭乘@sunil-b-n的answer

根据Sunil提供的plunkr,在当前版本的UI5中,示例代码运行良好。

但是,如果您像this一样将库版本更改为1.38.15,它就会按照OP的问题被破坏。

看看不同之处。在最新版本中,此代码有效:

代码语言:javascript
复制
<GenericTile>
    <TileContent>
        <ImageContent src=""/>
    </TileContent>
</GenericTile>

但在旧版本中,需要相应地显式添加命名聚合:

代码语言:javascript
复制
<GenericTile>
    <tileContent> <!-- named aggregation required. Default since 1.46.x -->
        <TileContent>
            <content> <!-- named aggregation required. Default since 1.38.18 -->
                <ImageContent src=""/>
            </content>
        </TileContent>
    </tileContent>
</GenericTile>

你需要弄清楚你使用的是什么版本的UI5,并使用appropriate SDK documentation来构建你的应用,否则你会遇到麻烦的。

通过将版本号添加到

,您可以查看特定于版本的演示工具包,例如https://ui5.sap.com/1.38.8/

票数 6
EN

Stack Overflow用户

发布于 2018-06-06 12:35:46

代码语言:javascript
复制
<mvc:View xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc" controllerName="com.sap.build.standard.qrCodeScanner.controller.Home" >
<Page id="home" class="customHomeBackground" showHeader="true" title="Home" showFooter="true">
    <content>
        <FlexBox class="customFlexBoxHome" justifyContent="Center" alignItems="Center" wrap="Wrap">
            <GenericTile class="customTile" header="Scan invitations" subheader="from your customers" frameType="OneByOne" press="_onGenericTilePress1">
                <TileContent>
                    <ImageContent src="sap-icon://bar-code" />
                </TileContent>
            </GenericTile>
        </FlexBox>
    </content>
    <footer/>
    <headerContent/>
    <subHeader/>
    <customHeader/>
</Page>
</mvc:View>

这个视图在最新的SAPUI5版本中加载完全正常。Working plnkr here

contentsap.m.Page.的缺省aggregation

票数 1
EN

Stack Overflow用户

发布于 2018-06-06 05:25:03

我猜是因为sap.m.GenericTile周围包装了sap.m.Page。只需省略sap.m.Page,您就不会得到错误。sap fiori design guidelines表示,tiles用于在launchpad上显示和启动应用程序。因此,它们不应用于概述页面或其他任何地方。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50706296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档