如何在 XML 视图中应用全局模型?
How to apply global model in XML View?
我试图在我的一个控制器中定义一个全局模型,然后尝试在某些 XML 视图中获取它的值,但我不知道为什么它没有显示。
控制器:
sap.ui.getCore().setModel(oModelo, "miModelo");
查看:
<Text id="selectiona"
class="selectiona"
text="{= ${miModelo>/miSelectiona}.length > 0 ? 'Selected:' + ${miModelo>/miSelectiona} : ''}"
/>
P.S:当我这样设置模型时它起作用了:
this.byId("selectiona").setModel(oModelo,"miModelo");
但我需要全局定义它。有什么办法可以做到吗?
如 中所述,在 Core
上设置的模型不会传播到 ComponentContainer
的子级。因此,改为在 Component
上设置模型。您可以在 manifest.json 中以声明方式执行此操作,也可以通过在 Component.js 中调用 this.setModel(...)
来执行此操作。然后,模型将自动传播到它的子视图,这意味着视图将能够在没有任何控制器参与的情况下显示模型数据。如果需要,您仍然可以通过调用 this.getOwnerComponent().getModel(...)
.
从任何控制器访问模型
示例:
在 manifest.json 上声明它。这是一个例子:
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "atendimentoMobile.i18n.i18n"
}
},
"viewModel": {
"type": "sap.ui.model.json.JSONModel",
"dataSource": "viewModelDs",
"settings": {
"defaultBindingMode": "TwoWay"
}
},
"deviceModel": {
"type": "sap.ui.model.json.JSONModel",
"dataSource": "deviceDs",
"settings": {
"defaultBindingMode": "OneWay"
}
},
"authModel": {
"dataSource": "authServiceDs",
"settings": {
"defaultBindingMode": "TwoWay",
"useBatch": false
}
},
"chamadosModelOdata": {
"dataSource": "mainServiceDs",
"settings": {
"defaultBindingMode": "TwoWay",
"useBatch": false
}
}
}
我试图在我的一个控制器中定义一个全局模型,然后尝试在某些 XML 视图中获取它的值,但我不知道为什么它没有显示。
控制器:
sap.ui.getCore().setModel(oModelo, "miModelo");
查看:
<Text id="selectiona"
class="selectiona"
text="{= ${miModelo>/miSelectiona}.length > 0 ? 'Selected:' + ${miModelo>/miSelectiona} : ''}"
/>
P.S:当我这样设置模型时它起作用了:
this.byId("selectiona").setModel(oModelo,"miModelo");
但我需要全局定义它。有什么办法可以做到吗?
如 Core
上设置的模型不会传播到 ComponentContainer
的子级。因此,改为在 Component
上设置模型。您可以在 manifest.json 中以声明方式执行此操作,也可以通过在 Component.js 中调用 this.setModel(...)
来执行此操作。然后,模型将自动传播到它的子视图,这意味着视图将能够在没有任何控制器参与的情况下显示模型数据。如果需要,您仍然可以通过调用 this.getOwnerComponent().getModel(...)
.
示例:
在 manifest.json 上声明它。这是一个例子:
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "atendimentoMobile.i18n.i18n"
}
},
"viewModel": {
"type": "sap.ui.model.json.JSONModel",
"dataSource": "viewModelDs",
"settings": {
"defaultBindingMode": "TwoWay"
}
},
"deviceModel": {
"type": "sap.ui.model.json.JSONModel",
"dataSource": "deviceDs",
"settings": {
"defaultBindingMode": "OneWay"
}
},
"authModel": {
"dataSource": "authServiceDs",
"settings": {
"defaultBindingMode": "TwoWay",
"useBatch": false
}
},
"chamadosModelOdata": {
"dataSource": "mainServiceDs",
"settings": {
"defaultBindingMode": "TwoWay",
"useBatch": false
}
}
}