1
私は自分のPHPプロジェクトでhandsontableプラグインのための自分のレンダラを実装しようとしています。 ので、プラグイン用のparamsのセットはPHPの配列として調製される:配列値をPHPのjavascript関数クロージャとして設定する方法は?
$options = [
'data' => $orders,
'columns' => [
[
'data' => 'email',
'renderer' =>
// Heredoc goes here
<<<JAVASCRIPT
function(value) {
console.log(value);
}
JAVASCRIPT
],
...
]
];
次に、それを引数としてプラグインに渡されます。
hot = new Handsontable("mydiv", {
'data': ...,
'columns': [
{
'data': 'email',
// Here is the problem!
'renderer': 'function(value) { \n\r console.log(value) \n\r }'
},
...
]
});
:
$this->registerJs('hot = new Handsontable("mydiv", ' . json_encode($options) . ')');
HTMLをレンダリングするときに、私はこれを見ます
問題は、この関数をクロージャとして渡すことができず、引用符で囲まれたテキストとしてのみです。
可能ですか?
here-docは常に文字列です。 JSONで関数をエンコードする方法はありません。 – Barmar
@Barmarは関数を前に定義し、その名前をparamとして渡すべきですか? – dearmisterrobot
そういうものがありますが、 'json_encode()'でそれを得る簡単な方法はありません。 'registerJs()'に複数のステートメントを置くことはできますか? – Barmar