とJavascriptの呼び出し:Laravel 5.2私は、(現在は)私のmodule.blade.phpのコードの以下のビットを持っているブレードパラメータ
@section('scripts')
<script type="text/javascript">
createMixin(['{{ $module }}']);
</script>
@endsection
説明:
- $モジュールは可変です単純なkey =>値でパックされたJSONを保持しますが、key => objectでも保持します。コントローラに以前にロードされ、blade.phpに表示されます。
例:
{ "タイトル": "タイトル"、 "名前": "ダミー"、 "ファイル": "ダミー"、 "レイアウト": "正常"、 "フィールド":[ { "名前": "BLA" }]}
- 機能createMixin()は理想的でジェイドからHTMLを生成します$ moduleの中のオプション(既に存在します)。
問題は次のようになります。これは、エラーメッセージで終了処理を行います。「にhtmlentities()パラメータ1は、配列が与えられた文字列であることを期待」
は、これまでに完了:を私はすでにいくつかのことを試してみました:
@section('scripts')
<script type="text/javascript">
var fields = $.parseJSON("{!! $module !!}");
createMixin(fields);
</script>
@endsection
そして:
@section('scripts')
<script type="text/javascript">
createMixin("{!! JSON.parse($module) !!}");
</script>
@endsection
そして:
@section('scripts')
<script type="text/javascript">
createMixin("{!! json_encode($module) !!}");
</script>
@endsection
そして:
@section('scripts')
<script type="text/javascript">
$(this).createMixin("{{ $module }}");
</script>
@endsection
私はここにいくつかの記事を見て持っていた(ようなthis one)および他のソースでは、彼らはPHPの破メソッドを使用する人々に伝えるか、単に"{!! 。。!!}」しかし、これはすべてが同じエラーメッセージで終わる
質問:??私はここに見下ろす午前私が間違って何をやっている
編集:
として、私のJavascript関数をリクエストしました:
//generate one jade mixin
function createMixin(module) {
//first load JSON...
var json = $.parseJSON(loadJSON(module["file"]));
//get options for mixin
var options = json.fields;
//detect jade file
var jadepath = RESOURCES_DIR + "views/jade/" + json.file + "/template.jade";
//check if file exists
$.ajax({
'url': jadepath,
'type': 'HEAD',
'error': function() {},
'success': function() {
var html = renderJade(options, jadepath);
//save html into json
json.html = html;
var tmp = new Blob([html], { type: 'plain/text;charset=utf-8' });
}
});
};
あなたは、このメソッド 'createMixin()'が何をするのでしょうか?あなたは私たちにPHPの受信終了を示すことができますか? htmlentities()はパラメータ1が文字列であることを期待しているので、配列 ''はPHPの終わりに基づいています。 – Qazi
@Qazi上記のJavascriptを追加しました。私はこの関数を呼び出し、生成されたhtmlで要素の内容を変更する予定です。このテストのために私はほとんどコメントしました。私はコードの最初の行だけを持っていました、残りはこれのためにコメントアウトされました。 – Mentenyia
投稿した他の例のそれぞれについて同じエラーが発生していますか?最初のものがうまくいくように見えます。たぶん '$ module'に何が入っているかを二重にチェックしますか?あなたは単に 'var fields = {!! $ module !!} ' – Tama