js如何將字串轉換為物件
在tp專案中使用js實現分頁所遇到的問題,不過這個問題也不僅僅侷限於tp框架,其他地方也是均此。
接下來給大家說說我遇到的問題吧:
控制器中將查詢到的資料轉換為json格式後,傳給模板js
console.log('{$data}'); 這裡打印出來的內容和我下面在js中定義的資料格式一致
// js中定義的資料格式
var json = [
{
"da_id": "1",
"da_time": "2016-06-08",
"da_plane": "很多",
"da_money": "421.34",
"da_displaycount": "3343",
"da_click": "78"
},
{
"da_id": "2",
"da_time": "2016-06-09",
"da_plane": "很多",
"da_money": "2347.02",
"da_displaycount": "13402",
"da_click": "401"
},
{
"da_id": "3",
"da_time": "2016-06-10",
"da_plane": "很多",
"da_money": "3007.67",
"da_displaycount": "13938",
"da_click": "495"
},
{
"da_id": "4",
"da_time": "2016-06-11",
"da_plane": "很多",
"da_money": "3010.27",
"da_displaycount": "15930",
"da_click": "501"
},
{
"da_id": "5",
"da_time": "2016-06-12",
"da_plane": "很多",
"da_money": "3029.75",
"da_displaycount": "18715",
"da_click": "519"
},
{
"da_id": "6",
"da_time": "2016-06-13",
"da_plane": "很多",
"da_money": "2179.43",
"da_displaycount": "13871",
"da_click": "367"
}
]
在js中進行迴圈輸出,當我採用自己在js中的資料格式迴圈輸出是正常的,但是使用控制器傳過來的值進行輸出,是無法輸出。
解決辦法:
在這裡我使用了js的typeof()檢視兩種資料格式的型別,發現控制器傳過來的是string型別,而自己在js中的定義的資料格式為object資料型別。
接下來我採用了js中的eval()函式 var v = eval('{$data}'); 在將v 賦值個變數json,此時就可以了。eval()函式說明
總結:控制器傳給js中的資料,會轉換為string(ajax方法除外)。