2016-03-27 2 views
0

Я пытаюсь реализовать модель i18n в своем приложении, но по какой-то причине модель остается пустой, независимо от того, что я пытался сделать.i18n Модель пуста

Я использую WEB IDE, и мне нужно работать с проектом, который был создан кем-то другим. Структура проекта отличается от стандартного приложения SAPUI5 (нет манифеста. Json, нет папки webapp, Component.js выглядит иначе и т. Д.).

То, что я уже пытался сделать, это объявить модель i18n в component.js и привязать его к ядру:

var i18nModel = new sap.ui.model.resource.ResourceModel({ 
    bundleName:"generated.app.i18n.i18n" 
}); 
sap.ui.getCore().setModel(i18nModel, "i18n"); 

в функции инициализации() из component.js (» generate.app "- пространство имен).

И чем, на мой взгляд:

<m:Page title="{i18n>title}"> 
..... 
</m:Page> 

Структура проекта выглядит следующим образом:

-Project_Name

| --view

| --i18n/i18n .properties

| --....

...

Я также попытался объявить модель в контроллере, но это тоже не сработало.

В обоих случаях модель создана, но она пуста.

i18n.properties присутствует и имеет значения.

Что делать неправильно?

спасибо.

+0

Что говорит консоль? Я предполагаю, что модель не может загрузить пакет. – matbtt

+0

@matbtt Консоль показывает объект модели. нет ошибок. свойство '_OResourceBundle' объекта имеет данные о локали, но не включены никакие файлы свойств. – keshet

+0

Насколько я знаю, вы также устанавливаете модель на вид. Если вы можете сказать, какую версию вы используете, я могу помочь больше. В более старых версиях я создавал корневой вид в 'createContent' в' Component.js'. Затем я устанавливал свою модель как «oView.setModel (oi18nModel,« i18n »)' – melomg

ответ

1

Попробуйте это во время инициализации-функции в component.js:

// always use absolute paths relative to our own component 
// (relative paths will fail if running in the Fiori Launchpad) 
var sRootPath = jQuery.sap.getModulePath("your_application_name"); 

// set i18n model 
var i18nModel = new sap.ui.model.resource.ResourceModel({ 
    bundleUrl : [ 
     sRootPath, mConfig.resourceBundle 
    ].join("/") 
}); 

this.setModel(i18nModel, "i18n"); 
0

Ничего не работало, поэтому я создал новый проект стандарта SAPUI5 и переместил код из старого проекта. Теперь модель i18n отлично работает.

Смежные вопросы