[問題] ng-grid
小弟剛入職場新鮮人
許多觀念尚模糊
在提問過程中若有錯誤的
還請多多指教
在提問前我先說明一下
撰寫出來的網頁需要支援 IE 8
前端使用 AngularJS
目前在使用 ng-grid 上遇到點問題
原本此功能用 SpreadJS 會容易許多
但是 SpreadJS 的 Combobox 並不支援 IE 8
/*---------------------------*/
我實作需求的功能是這樣的:
今天我從後端接收到一筆 Excel 欄位資訊的 List
假設
ParentAry[] 含有
ValueAry[](存放 Excel 的 col位置, row位置, value) 及
ErrorAry[](存放 Error 的 col位置, row位置, value)
我要根據有幾筆 ValueAry[] 動態長出欄位
然後顯示其 Value
再依據 ErrorAry[] 內的資訊
標記錯誤的欄位顯示為紅色
並提供 User 直接點選修改、存值
而問題出現在
若我顯示錯誤欄位為紅色,就無法修改值
若我提供修改功能,就無法顯示錯誤欄位紅色
/*------------------------------------*/
以下是我 code 的大致相關內容
提供顯示錯誤欄位為紅色
我先將 ErrorAry[] 的內容加入對應的 ValueAry[] 方便處理
再處理欄位部分
columnDefs:
{
field: "ArrayList[]", //ng-grid欄位的field為[object Object]
cellTemplate: '<... ng-class="{red: row.getProperty(col.field).error}">
<...>{{row.getProperty(col.field).value}}</..></..>'
}
此種方式的 field 含有 value 及 error ...等多種資訊
但是點選欄位改值後,ex: 100
field 欄位的 ArrayList[] 會直接被存為"100"且不會顯示出來
因為原預設是 [object Object]
無法存到下層 ValueAry[] 的 Value
---
但是若要變成能處理存值的問題
columnDefs:
{
field: "ArrayList[].value", //ng-grid欄位的field為string
cellTemplate: '<..="{red:..(col.field).error}">//取不到error值,忽略
<...>{{row.getProperty(col.field)}}</..></..>'
}
這樣就能修改值,但就取不到 error 的資訊了
/*-----------------------------------*/
以上冗長的描述不知道能不能清楚表達我的問題
還請高手神手幫幫我解決衝突
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.195.33.63
※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1409062205.A.8CC.html
※ 編輯: ace119 (123.195.33.63), 08/26/2014 22:12:40
推
08/27 05:20, , 1F
08/27 05:20, 1F
→
08/27 05:21, , 2F
08/27 05:21, 2F
→
08/27 05:25, , 3F
08/27 05:25, 3F
→
08/27 05:26, , 4F
08/27 05:26, 4F
感謝你的回覆
我前面的"ErrorAry[] 的內容加入對應的 ValueAry[] 方便處理" 這段就是
將兩個list merge起來成為一個 array
今天又嘗試過很多方式,主要是以field: "ArrayList[].value"這條路走
不過走到最後發現差不多是死路了
看來得朝field: "ArrayList[]" => merge兩個list去拿值的路走
這條路主要就是卡在 User 修改值後會將 Array 直接覆蓋成 string
還請幫我想想 solution
感謝!
※ 編輯: ace119 (123.195.33.63), 08/27/2014 23:52:54
推
08/29 11:59, , 5F
08/29 11:59, 5F
!! 太感謝你了
雖然我後來有解決這問題
但是你的方法比較漂亮
讓我學了不少
我下週上班再去嘗試看看
感謝!
※ 編輯: ace119 (123.195.33.63), 08/30/2014 20:38:25
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章
6
32