SAPUI5奇怪的数据绑定行为

Al *_*ram 0 sapui5

这是非常愚蠢的问题,但我不知道它为什么会发生.我在控制器中发现了这个:

this.getView().setModel(this.placesModel, "myCity");
Run Code Online (Sandbox Code Playgroud)

然后我用Ajax请求将数据设置到我的快速RESTFull应用程序和View.xml中

  <List items="{path: 'myCity>/people'}">
      <CustomListItem>                           
          <VBox>
            <Title text="Person:"/>
            <Label text="{myCity>/people/name}"/>
            <Label text="{myCity>/people/age}"/>
          </VBox>            
        </CustomListItem>
   </List>
Run Code Online (Sandbox Code Playgroud)

我有myCity几个属性的对象.其中一个是对象people,它是一组对象.当我尝试列出这些时,我可以看到我的所有人都被列出但没有相应的姓名和年龄.此外,我发现很难>/何时何时使用>/.

小智 5

{(model_name)>(path_to_property)}如果您没有模型名称(默认模型),则只需指定模型名称的基本绑定语法{path_to_property}.

如果你没有,则需要初始斜杠(/)contextbinding.在您的情况下,您已contextbinding在List上设置,因此您不需要使用斜杠.

更新的代码:

  <List items="{path: 'myCity>/people'}">
      <CustomListItem>                           
          <VBox>
            <Title text="Person:"/>
            <Label text="{myCity>name}"/>
            <Label text="{myCity>age}"/>
          </VBox>            
        </CustomListItem>
   </List>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅绑定路径.

  • 只需添加一件事就可以避免误解.在绑定路径的开头使用斜杠意味着它是一个"绝对"路径.所以它从模型的根源指向内部属性.如果在开头不使用斜杠,则它是一个"相对"路径,因此该路径将以绑定上下文的路径为前缀.因此,在您的列表中,CustomListItem模板中的所有绑定应该相对绑定到您在`items`聚合中指定的上下文路径. (3认同)