2017-02-15 3 views
1

は、Laravelコントローラからのデータはthusly JavaScriptで使用するためのビューに送られ、引用します想像すると、データが単一の引用符で囲まれた大きなJSON文字列として取り込まれるため、データに単一引用符があると破損します。は、当社のレガシーコードで

私たちがどのように改善するかについては、このようなクエストに着手する前に、どのような方法やベストプラクティスを念頭に置いて、他の人々がLaravelのコントローラからデータを取り込むかを知りたいJavascriptを表示します。

私はPHPのaddslashes()やhtmlentities()のようなものを試しましたが、それらは重い手であるかもしれません。このデータをLaravelから変換またはエンコードするにはどうすればよいですか?

+0

あなたは '$ http'ユーザーリストを取得するために使用していますか?もしそうなら、受け取ったJSONを自動的に解析します(あなたが 'application/json'ヘッダでそれを送ると仮定します)。 –

答えて

0

テンプレート言語のJavaScriptファイルに直接データを挿入することはお勧めしません。ユーザデータをAngularにロードするより良い方法は、スケーラビリティの点で一般的には、APIエンドポイントから提供することです。その後、Angularの$http(または$resource)を使用してビューを割り当てるURLからデータを取得し、コントローラにロードします。あなたが、あなたのコントローラ(複数可)にデータを挿入するng-initディレクティブを使用することができなければならない場合

angular.module('app').controller(function($http, $scope) { 
    $http.get('/api/v1/users/', function(response) { 
     $scope.users = response.data; 
    }) 
}) 

しかし、:

<body ng-controller="exampleCtrl" ng-init="users = {!! $users or "{}" !!}"> 
    <!--- the rest of your html ---> 
</body> 
+0

大きなアドバイスですが、私が質問したところでは、データはLaravelコントローラからのものです。これは、データが操作されてページの準備が整えられ、 'View :: make( 'users'、get_defined_vars());'というビューを渡してビューに渡されるため、Laravelコントローラからデータを取得する方法が本当に必要ですJavascriptに – SpaceNinja

+0

私はLaravelに100%馴染んでいるわけではありません(1%でもない)が、私は一般的にテンプレートエンジンに精通しています。テンプレートを使用してJavascriptにデータを挿入することは問題を求めています。必要なJSONを具体的に提供するビューを設定するのに最適です。 –

+0

違いは、Laravelコントローラに必要なデータがあることです。私はLaravelのルートをAjaxでLaravelコントローラに直接アクセスしてデータを取得することができることを知っていますが、データを提供するコントローラが既に存在するため、LaravelコントローラでAjaxにデータを渡す機能を重複して作成することを意味しますLaravelがページを構築して配信するとき。 – SpaceNinja

関連する問題