(五)寫第一個Fiori應用

今天來寫第一個Fiori應用。

先創建項目,名稱First_Fiori_Demo。默認view選xml,名字App。(這些之前都說過了)項目結構參考上一篇,運行起來。看title。


首先來修改一下Title。


直接修改page標籤的title屬性,保存,刷新已運行的頁面。


很簡單就能設置title,但是實際項目中一般不會這樣做。將view中的title恢復到原來的樣子title="{i18n>title}", 保存,刷新已運行的頁面,頁面又變回來了。

因爲Title多是固定的,頁面初始化後就確定了,不會隨着頁面數據變化而改變,所以把title一般都放到i18n文件。類似的這種不經常變化的標籤文字,比如按鈕文字,輸入框的提示文字和placeholder等都會放到i18n文件中進行多語言處理。在目錄下找到i18n文件打開,能看到三個默認的標籤文字


把title更改爲 title=First Fiori Demo,保存。頁面的title由TitleFirst Fiori Demo了。保存,刷新已運行的頁面,title變成First Fiori Demo。

現在看一下這個文字是怎麼變化過來的。首先,頁面上的數據都由和頁面相關聯的model提供。當從服務取回來數據,必須要經過sapui5封裝成jsonmodel才能綁定到頁面上取。封裝過程後續會說,暫時知道這個事就行。來看一下webapp目錄下的manifest.json 文件(就是一個比較長的json文件),61行的位置,是關於當前項目model的配置。


可以看到,此處聲明瞭一個i18n model,model裏的數據就是i18n文件下的內容了。"bundleName": "First_Fiori_Demo.i18n.i18n" 這句指定了路徑是i18n文件夾下的i18n文件。此處可忽略,新建項目的時候系統默認配置好了,知道i18n model是從這裏來的就可以了。


然後就是要把model裏的東西綁定到頁面上了。打開view文件,可以看到這裏model綁定的方式很簡單。title="{i18n>title}",表示把i18n model下的title的值賦給page的title屬性。i18n的綁定方式略微特殊,這是由於i18n是ResourceModel,而開發中多用的是jsonmodel。後面將會看到綁定的不同之處。



下面自己來弄個json model試試。給頁面加一個label,並讓label顯示自定義的文字。走起!

打開App.controller文件,是這個樣子滴。


添加下圖代碼。


解釋下圖中的代碼,onInit方法,controller被加載後就會執行此方法中的代碼。比如進入頁面需要自動獲取初始化數據,那就可以把獲取初始化數據的代碼放到這個方法裏。我想加載頁面之後就能看到想要的文字,所有代碼就放到這個方法裏,controller加載就執行。

onInit方法中一共三行,第一行,聲明瞭一個叫labelModel的jsonModel。

第二行,給這個model設置一個對象{text: "Hello my first Fiori app"},注意,給jsonModel設置數據對象用setData方法。

第三行,將這個model綁定到頁面上。先獲取到頁面元素,this.getView().byId("test_label") 和JavaScript中document.getElementById等價。

再來給view添加一個label。直接將這句<Label id="test_label" text="{label>/text}"></Label>加入到content標籤當中即可。注意此處的綁定,並不是直接{model>field}的方式,而是在field前加了/。這就是jsonModel綁定的不同之處。


好了,保存下修改過的文件,刷新已運行的頁面。添加的標籤出來了!只要修改賦給model的對象,頁面的數據就會隨之改變了。



大功告成,後續介紹一些簡單的頁面,敬請期待!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章