如何将视图和对象从Laravel 5控制器返回到Angular控制器

时间:2015-09-22 18:07:57

标签: angularjs laravel-5

当输入url,domain.com/floorplans时,我希望FloorplanController.php将所有平面图返回到角度控制器并返回视图。

这是FloorplanController @ index:

public function index()
    {
        $floorplans = Floorplan::all();
        return view('floorplans.index', compact('floorplans'));
    }

这是我的Angular控制器:

angular
.module('myApp', [])

.controller('FloorplanController', function($scope, $http) {

    $http.get('/floorplan').success(function(floorplans) {
        $scope.floorplans = floorplans;
    });

});

以上不起作用,因为$scope.floorplans = floorplans;始终未定义。

如果我在routes.php文件中创建两个单独的路由,我可以让它工作,但这看起来非常草率。

Route::get('/', function()
{

    return view('floorplans.index');

});

Route::get('test', function()
{

    return Floorplan::all();

});

使用对象返回视图的正确语法是什么,以便Angular控制器拾取对象?

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此代码,它现在适用于我:

public function index()
{
    $data['floorplans'] = Floorplan::all();
    return view('floorplans.index')-> with($data);
}

然后在你看来,使用:$ floorplans(php)或{{$ floorplans}}(html)

从列名获取值:$ floorplans ['column-name']

答案 1 :(得分:0)

我遇到了同样的问题,但我在其中一个项目中解决了这个问题。这个回复可能为时已晚,但只想分享我的经验。 您可以按照以下说明进行操作。

这是你的路线:

Route::get('/', floorplanController@index);
Route::get('/floorplan', floorplanController@floorplan);

这是你的控制器:

public function index(){
 return view('index');
}

public function floorplan(){
return response()->json(Floorplan:get());
}

您可以保持角度控制器的原样。但最好使用单独的服务页面和在单独页面中定义的主应用程序模块,这将在您的应用程序增长时发挥作用。