moszkva / angie
Laravel Angular 路由管理器。从服务器端路由规则生成 Angular 路由规则和服务。
v1.1.2
2014-03-29 22:53 UTC
Requires
- php: >=5.3.0
- illuminate/support: 4.1.*
This package is not auto-updated.
Last update: 2024-09-28 14:44:25 UTC
README
Laravel-Angular 路由管理器。从服务器端路由规则和服务生成 Angular 路由规则。
https://packagist.org.cn/packages/moszkva/angie
#特性#
- 从服务器端路由规则生成 Angular 路由规则
- 生成基本数据传输的 Angular 服务。
- 在控制器名称中解析命名空间。
##安装##
通过 composer 安装
{ "require-dev": { "moszkva/angie": "dev-master" } }
##用法##
安装后,您必须在 config/app.php 中注册 AngieServiceProvider
'providers' => array(...., ...., 'Moszkva\Angie\AngieServiceProvider'), 'aliases' => array(....., ....., 'Angie' => 'Moszkva\Angie\Facades\Angie'));
并必须为 angie 注册路由规则
// Angie BEGIN Route::get('angie/get/routing', function() { return Angie::renderRouterProviderStatment('<YourAppName>', '/angie/test'); }); Route::get('angie/get/services', function() { return Angie::renderServices('<YourAppName>'); }); // Angie END
并将这些放置在 index.html 中,在彼此的 Angular 脚本之后
<!--Angie BEGIN--> <script src="angie/get/routing"></script> <script src="angie/get/services"></script> <!--Angie END-->
##angie 如何工作?##
- 生成 angular routeprovider 声明。上述示例
<YourAppName>.config(['$routeProvider', function($routeProvider) { $routeProvider .when("/angie/test",{"controller":"AngieTestController","templateUrl":"angie/test"}) .when("/angie/test/create",{"controller":"AngieTestController","templateUrl":"angie/test/create"}) .when("/angie/test/:test",{"controller":"AngieTestController","templateUrl":"angie/test/' + $routeParams.test + '"}) .when("/angie/test/:test/edit",{"controller":"AngieTestController","templateUrl":"angie/test/' + $routeParams.test + '/edit"}) .when("//",{"controller":"TestController","templateUrl":"/"}) .otherwise({"redirectTo":"/angie/test"})}]);
- 生成基本数据传输的 angular 服务
var <YourAppName>Services= angular.module('<YourAppName>Services', ['ngResource']); AngieTestControllerService.insert(properties); AngieTestControllerService.update(properties); AngieTestControllerService.delete(id); AngieTestControllerService.show(id); AngieTestControllerService.list(id, params); // params is optional.
有效服务生成的非常重要的约束
- Laravel 路由规则必须通过控制器唯一。示例
有效配置(AnotherAngieTestController 是 AngieTestController 的子类)
Route::resource('angie/test', 'AngieTestController'); Route::resource('angie/test2', 'AnotherAngieTestController');
无效配置
Route::resource('angie/test', 'AngieTestController'); Route::resource('angie/test2', 'AngieTestController');
命名空间解析
Laravel route rule:
Route::resource('/test', 'Test\Angie\TestController')
Controller name in generated routprovider statement:
TestAngieTestController
Service name in generated service statement:
TestAngieTestControllerService