Beego模板 迴圈和判斷幾個例子

2021-07-08 09:10:49 字數 2745 閱讀 5815

beego的前端幾乎是另一種語言。一些迴圈、判斷,不細看文件真的做不出來。

貓哥按:盡量在controller裡把送出去的資料規整好了,盡量別再模板裡處理,會省心很多的。

0. beego的view模板語法規則:

beego前端(view)統一使用了 } 作為左右標籤,沒有其他的標籤符號。

使用 . 來訪問當前位置的上下文;

使用 $ 來引用當前模板根級的上下文;

使用 $var 來訪問建立的變數。

1. 迴圈 range … end

可以接受slice, map, channel。貌似map、slice混在一起的比較多,甚至有時候會是乙個json串的。

例子1(slice):

controller送來的資料:

[map[contnum:lvl-2015-001 id:2] map[contnum:lvl-2015-002 id:10] map[id:3 contnum:lvl-2015-003] map[contnum:lvl-2015-004 id:5] map[contractnum:lvl-2015-005 id:1]]
view端接受比較舒服:

}}}

例子2(map):

controller送來的資料是乙個json串,比如:

map[data:[map[id:564b044c164d6b366f64390a name:ibm] map[id:564b044c164d6b366f64390c name:dell] map[id:564b0458164d6b366f6439c9 name:hp]]]
controller裡面最好先處理一下:

this.data["devicebrandmap"] = devicebrandmap["data"]
view裡面比例子1稍微複雜點兒:

}

}}

map是個鍵值對,沒錯吧?所以需要用兩個值接收,對吧?

例子3(更複雜的map,條件判斷):

controller送來的乙個json串,比如:

map[data:[map[email: fax: name:xx網 province:北京市 provinceid:1 statid:0 type: _id:564b04cb164d6b366f644280 website: updateuser:管理員 district:朝陽區 phone:01088888888 updatetime:2015-10-10 10:10:10 addr: districtid:9 note: postcode: typeid:1 dictkey:cmdb-dict-company id:78 dict_key:] 

......]]

需要過濾,當且僅當 typeid為1的時候,取name的值。也還好說,每次加個判斷好了。

}}}

}}

2. 判斷 if ... else ... end

2.1 語法:}}
if 判斷時,pipeline 為空時,相當於判斷為 false

this.data["islogged"] = true

this.data["ishomepage"] = true

this.data["ispayed"] = false

支援巢狀的迴圈

}

} }}

}

也可以使用 else if 進行

}}}

}

本沒必要說什麼,奈何判斷語法比較「獨特」

。2.2eq / ne / lt / le / gt / ge 這些都是函式!

這類函式一般配合在 if 中使用,望文生義即可。

既然是函式,那麼用法就是 eq .var1 $var2 或者 eq .var1 .var2,總之一句話,用來比較的幾個變數要放在 這六個函式的後面。否則,報錯沒商量!

例子4(簡單比較):

}

// something your function likes...

}// something your function likes...

}// something your function like...

}

看到了吧?數字(整數、浮點數)都可以直接比較值;字串必須用雙引號!必須用雙引號!必須用雙引號!重要的事情說三遍!!!否則報錯沒商量。

2.3 特殊的eq函式

eq 和其他函式不一樣的地方是,支援多個引數,和下面的邏輯判斷相同

arg1==arg2 || arg1==arg3 || arg1==arg4 ...
記住:只有eq乙個函式可以這樣!其它五個函式都不可以。

與 if 一起使用

}}
如果想處理乙個邏輯——不是a也不是b也不是c,能用ne嗎?絕對不行!

例子4(not和eq):

}}}

}}

not只能否定乙個變數或者表示式,所以eq 函式和函式入口引數要用括號括起來。漢語字串也是可以被支援的。

Beego模板 迴圈和判斷幾個例子

beego模板 迴圈和判斷幾個例子 beego的前端幾乎是另一種語言。一些迴圈 判斷,不細看文件真的做不出來。0.beego的view模板語法規則 beego前端 view 統一使用了 作為左右標籤,沒有其他的標籤符號。使用 來訪問當前位置的上下文 使用 來引用當前模板根級的上下文 使用 var 來...

Python 判斷和迴圈

python中 是有意義的,乙個製表符或者4個空格代表一行 段 aaaaaaaaaa bbbbbbbbbbb bbbbbbbbbbb ccccccccc ccccccccc bbbbbbbbbbb bbbbbbbbbbb上面共有三個 塊,包含關係如下,c行被b行包含,b 塊有被a包含。age 12 ...

C 判斷和迴圈

using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 0903 判斷和迴圈 日 n s int n conver...