Laravel和AngularJs SPA访问直接URL时出错

问题描述 投票:0回答:2

这可能是一个愚蠢的问题,因为我是Laravel的新手。我正在使用角度和laravel进行单页应用。我试图从“todos”表中获取所有记录,并在点击“查看所有Todos”按钮时将它们显示到todo.html。 “查看所有Todos”转到“localhost:8000 / tasks”URL。当我点击那个按钮,我得到了所有的待机没问题。但是当我尝试直接在浏览器上访问该URL时,我从laravel Todocontroller获得了json数组。

这是我的路线/ web.php

Route::resource('/todo', 'TodoController');

Laravel TodoController控制器

 public function index()
{
    return Todo::all();
}

这是我的角度代码

myApp.config(['$routeProvider', '$locationProvider',

function ($routeProvider, $locationProvider) {
    $locationProvider.hashPrefix('');

    $routeProvider.when('/', {
        templateUrl: 'views/home.html',
    });
    $routeProvider.when('/todo', {
        templateUrl: 'views/todo.html',
        controller: 'todoController'
    });
    $locationProvider.html5Mode(true);

}]);

myApp.controller('taskController', function($scope, $http) {
$http({
    method: 'get',
    url: 'todo'
}).then(function (response) {
    $scope.about = response.data
},function (error){
    console.log(error, 'can not get data.');
});
});
php angularjs laravel single-page-application
2个回答
0
投票

您是否知道您还可以从您的路线或控制器返回Eloquent系列?它们将自动转换为JSON。试一试!

https://laravel.com/docs/5.5/responses

如果要返回html,请使用控制器中的视图

public function index()
{   
    return view('todos')->with('todos',Todo::all());

}

https://laravel.com/docs/5.5/views


0
投票

您将从角度控制器和Laravel控制器瞄准相同的URL。您应该使用Laravel作为API或服务,而允许使用angular进行路由。检查这个以获取更多信息。 Laravel API routes

© www.soinside.com 2019 - 2024. All rights reserved.