【问题标题】:How to return both view and object from Laravel 5 controller to Angular controller如何将视图和对象从 Laravel 5 控制器返回到 Angular 控制器
【发布时间】:2015-09-22 18:07:56
【问题描述】:

当输入 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 控制器拾取该对象的正确语法是什么?

【问题讨论】:

    标签: angularjs laravel-5


    【解决方案1】:

    你可以试试这个代码,它现在对我有用:

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

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

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

    【讨论】:

    • 我刚试过这个......没有运气。必须有一种众所周知的方法将视图与对象一起传递,以便 Angular 控制器可以拾取对象。为什么我没有看到它?
    • 上面的代码将数据传递给 php 或 html,如果你想让你的角度获取这些数据,请看这里:stackoverflow.com/questions/29246298/…
    • myData = { blah: $value, alice: $bob }; ?>
    • 你的 Angular: .controller('FloorplanController', function($scope, $http) { console.log(myData); });
    • 感谢您的努力,罗马。我决定在这种情况下不使用 Angular。
    【解决方案2】:

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

    这是你的路线:

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

    这是你的控制器:

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

    您可以保持角度控制器不变。但是最好使用单独的服务页面和在单独的页面中定义的主应用程序模块,这将在您的应用程序增长时有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 2015-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-31
      • 1970-01-01
      • 2016-12-11
      • 2017-05-26
      相关资源
      最近更新 更多