如何从外部获取sap.m.Select的selectedKey?
How to get selectedKey of sap.m.Select from outside?
拥有这个 select 控件:
new Select("id", {
items: {
path: "/cards",
template: new ListItem({
key: "{Kunnr}",
text: "{Descrip}"
}),
},
});
我需要它能够获得它的 selected 键,但不能在更改事件中。我需要从外部获取它(另一个功能)。
我试过使用 ID,但结果是 undefined
。
您的问题缺少一些信息,主要是关于如何将 oSelectMarca
添加到您的视图。这会影响它在您的应用程序中的可用方式。有两个地方可以通过Id获取东西:
this.getView().byId('id');
sap.ui.getCore().byId('id');
您必须检查它是哪一个...另一种选择是将该模型添加到您的视图而不是 oSelectMarca
,在这种情况下您的视图和您的 select 可以共享数据.但这又取决于您如何将 select 添加到屏幕。
取决于你需要在哪里使用它你可以这样做:
this.oSelectMarca = new sap.m.Select('id',{});
this.oSelectMarca.setModel(myModel);
或者如果您将在另一个控制器中使用它,请尝试:
sap.ui.getCore().oSelectMarca = new sap.m.Select('id',{});
sap.ui.getCore().oSelectMarca.setModel(myModel);
尝试在 selectedKey
中使用双向数据绑定,这有助于保持 MV* 模式。
new Select({
selectedKey: "{/selectedCard}" // <-- It's TwoWay
items: {
path: "/cards",
template: new ListItem({
key: "{Kunnr}",
text: "{Descrip}"
}),
},
});
我假设默认模型可以跨应用程序访问。因此,只要您可以访问该模型,就可以通过 myModel.getProperty("/selectedCard");
获取所选密钥
我通过使用 sap 核心从外部访问属性解决了这个问题:
var myvar = sap.ui.getCore().getModel("marcas");
var selectedKey= myvar.getProperty('/cards/Kunnr');
拥有这个 select 控件:
new Select("id", {
items: {
path: "/cards",
template: new ListItem({
key: "{Kunnr}",
text: "{Descrip}"
}),
},
});
我需要它能够获得它的 selected 键,但不能在更改事件中。我需要从外部获取它(另一个功能)。
我试过使用 ID,但结果是 undefined
。
您的问题缺少一些信息,主要是关于如何将 oSelectMarca
添加到您的视图。这会影响它在您的应用程序中的可用方式。有两个地方可以通过Id获取东西:
this.getView().byId('id');
sap.ui.getCore().byId('id');
您必须检查它是哪一个...另一种选择是将该模型添加到您的视图而不是 oSelectMarca
,在这种情况下您的视图和您的 select 可以共享数据.但这又取决于您如何将 select 添加到屏幕。
取决于你需要在哪里使用它你可以这样做:
this.oSelectMarca = new sap.m.Select('id',{});
this.oSelectMarca.setModel(myModel);
或者如果您将在另一个控制器中使用它,请尝试:
sap.ui.getCore().oSelectMarca = new sap.m.Select('id',{});
sap.ui.getCore().oSelectMarca.setModel(myModel);
尝试在 selectedKey
中使用双向数据绑定,这有助于保持 MV* 模式。
new Select({
selectedKey: "{/selectedCard}" // <-- It's TwoWay
items: {
path: "/cards",
template: new ListItem({
key: "{Kunnr}",
text: "{Descrip}"
}),
},
});
我假设默认模型可以跨应用程序访问。因此,只要您可以访问该模型,就可以通过 myModel.getProperty("/selectedCard");
我通过使用 sap 核心从外部访问属性解决了这个问题:
var myvar = sap.ui.getCore().getModel("marcas");
var selectedKey= myvar.getProperty('/cards/Kunnr');