我对angularjs全新,我正在练习。
我对以下内容有点困惑,我有一个配置文件页面加载用户的详细信息,我真的不知道如何显示它,问题是我坚持逻辑。
我为它创建了2条路线
Route::get('/(:any)', array('as' => 'profile', 'uses' => 'user@profile'));
Route::get('/details/(:any)', array('as' => 'profile', 'uses' => 'user@details'));
所以网址实际上是这样的:http://mysite.com/username
所以我的逻辑就像这样,这条路线
Route::get('/(:any)', array('as' => 'profile', 'uses' => 'user@profile'));
返回个人资料视图
此路由将获取json中的用户数据
Route::get('/details/(:any)', array('as' => 'profile', 'uses' => 'user@details'));
我坚持的是这个
我加载了视图,http://mysite.com/username
我获得了个人资料页面
Laravel查看加载
public function get_profile($username = '')
{
return View::make('user.profile');
}
加载json
public function get_details($username = '')
{
$users = User::where_username($username)->get();
return Response::eloquent($users);
}
angularjs控制器
function profileCtrl($scope, $http) {
//here get the url first segment somehow
// and pass it to the get
// example
// urlSegment = username
$http('details/' + username ).success(function(data){
$scope.users = data;
console.debug(data);
});
}
所以我的问题是,我这样做是好的,还是我完全没有走上正轨。 有人能告诉我一个这样的例子吗?
谢谢
修改
更具体地说,我正在尝试用angularjs和laravel创建一个宁静的api,但我有点卡住它。我不明白的是路由逻辑。
例如
mysite.com/username
,我需要构建什么类型的路由逻辑才能获取数据?
因为我上面解释过,我为它创建了两条路线,我认为这不好。
答案 0 :(得分:4)
我正在尝试用angularjs和laravel创建一个宁静的api,但我有点卡住它。我不明白的是路由逻辑。
Laravel提供了许多方便的方法来创建一个restful API。应该注意Laravel是“restful api”,而AngularJS是使用API来显示结果的客户端(即用户前端)。
Laravel 4 refers to 'Resource Controllers' to help you build a restful API。使用此图片,您可以看到控制器的布局方式,以及每个命令的具体要求:
只需将“照片”替换为“用户”,这就是控制器的布局方式。如果您使用的是Laravel 4,则可以使用Artisan生成资源丰富的控制器:
php artisan controller:make UserController
它将添加上述各项功能。
Laravel 3 refers to 'Restful Controllers' - 但原则是一样的。
如果您有兴趣 - Nettuts has a great free tutorial on creating a Restful API with Laravel 4 from scratch。如果您遵循本教程 - 您将拥有一个完整的用户类API。它比这个答案更详细。
对于Laravel 4,您的路线只有一行代码:
Route::resource('user', UserController);
然后您将运行以下工匠命令
php artisan controller:make UserController
php composer.phar dump-autoload
然后你的用户控制器就可以了,所有的功能都是脚手架,所有你需要做的就是放入一些基本逻辑。
编辑:I just found another tutorial that explains Laravel 4 resource controllers a bit further。
答案 1 :(得分:1)
Angular是仅在浏览器中运行的客户端框架。所以你根本无法用它创建一个宁静的API。 restful API始终只在服务器上运行,因此Laravel should work for that。
Angular的使用方式是客户端从服务器上运行的restful API(使用$http module)请求内容为JSON,然后在客户端构建HTML。请参阅what-is-the-point-of-angularjs-routes?我也强烈推荐official tutorial。