2016-06-01 12 views
1

内の処理JSONデータは本当に誰かが支援することができます願って、私はJSON、すなわちで動作するようにOracle APEXのV4.2でJavaScript動的アクション内で、次のコードを持っている:のOracle APEX v4.2の

var graph_data = $v('P780_GRAPH_DATA'); 
var rule_data = $v('P780_RULE_DATA'); 

var unique = function(origArr) { 
    var newArr = [], 
     origLen = origArr.length, 
     found, x, y; 

    for (x = 0; x < origLen; x++) { 
    found = undefined; 
    for (y = 0; y < newArr.length; y++) { 
     if (origArr[x] === newArr[y]) { 
     found = true; 
     break; 
     } 
    } 
    if (!found) { 
     newArr.push(origArr[x]); 
    } 
    } 
    return newArr; 
} 

    var accessLines = graph_data.filter(function (line) { 
     return !isTrunkLine(line); 
    }); 
    var trunkLines = graph_data.filter(isTrunkLine); 

    accessLines.forEach(drawLine); 
    trunkLines.forEach(drawLine); 


    function isTrunkLine(intf_type) { 
     var purpose = intf_type.purpose; 

     return purpose === 'TRUNK'; 
    } 

作業している場合OracleのAPEXのこの外部とちょうどjavascriptのコードが含まれている別のHTMLファイル内に、すべてが正常に動作しますが、今のOracle APEXにこれを移動する必要が、私は次のエラーを取得しています:

Uncaught TypeError: graph_data.filter is not a function 

わからない私は何間違っていますが、基本的にはgraph_da内に有効なJSONオブジェクトがあります私はJSONLintを使って実行していますが、問題が何であるかはわかりません。

ご協力いただければ幸いです。

ありがとうございました。

+1

'$ v( 'P780_GRAPH_DATA')'が返されますか?配列でなければなりません。 – Tom

+0

@Tom私は実際にJSONをselectステートメントで作成します。このステートメントでは角括弧 "["と "]"を囲むので、文字列のように見えます。基本的には、VARCHAR2を返す関数呼び出しです。どのようにして配列plsに変換できますか? – tonyf

+0

この文字列はどうやって取得できますか? ajaxコールを介して? – Tom

答えて

1

最後に、Tomの助けを借りてJSONオブジェクトを解析するのを忘れてしまい、Oracle APEX v4.2内でDAの4000文字の制限にも遭遇しました。

PLSのは、以下を参照してください。http://www.explorer-development.uk.com/avoiding-dynamic-action-plsql-length-limit/

は迷惑だった私のJavaScriptコードを、再配置する必要がありました。

今はすべて問題ありません。

関連する問題