2014-11-02 103 views
0

我不知道如何將來自Laravel的home.blade.php的變量傳遞給我的AngularJS的Controller.jsAngularJS從Laravel獲取參數

LARAVEL:

我有一個可變searchid一個home.blade.php:

class SearchController extends BaseController { 

    public function makeSearch($searchid) 
    { 
     return View::make('pages.search')->with('searchid', $searchid); 
    } 
} 

@extends('layouts.default') 
@section('content') 
    <div class="row" ng-app="app"> 
     {{ $searchid }} 
     <post-controller></post-controller> 
    </div> 
@stop 

此變量由Laravel的控制器發送ANGULARJS:

我需要將此變量傳遞給AngularJS控制器。

我有一個指令文件是這樣的:

app.directive('postController', function() 
{ 
    return { 
     restrict: 'E', 
     templateUrl: 'templates/search.html' 
    } 
}); 

和控制器的文件是這樣的:

app.controller('SearchController', ['$scope', function($scope, $routeParams) 
{ 
     console.log($routeParams.search); 
     $scope.param = $routeParams.search; 
}]); 

我不知道該怎麼這個變量搜索傳遞給我的controller.js 。

回答

0

有一個很好的包,幾乎爲你做所有的工作。 PHP-Vars-To-Js-Transformer

但是,基本原理是通過在視圖中創建一個<script>標記並定義javascript變量,將變量傳遞給javascript。這裏有一個例子:

<script type="text/javascript"> 
    var searchId = {{ $searchId }}; 
</script> 

注意根據您的變量的數據類型,你將不得不使用周圍的引號,或者甚至使用JSON序列化。

+0

把這段代碼放在我的Laravel .blade.php中?指令後控制器之間?而且..我如何在controller.js中使用這個var? – victorlopezsanchez 2014-11-02 16:18:34

+0

是的,在您的刀片文件中。把它放在你包含JavaScript文件之前。然後在controller.js中,就像'console.log(searchId)一樣使用它' – lukasgeiter 2014-11-02 16:21:14

+0

如果我放入.blade.php,在控制檯中我有這個錯誤:'未捕獲的ReferenceError:search_test未定義',其中「search_test」是var。的內容。任何想法? – victorlopezsanchez 2014-11-02 16:31:05