moszkva/angie

Laravel Angular 路由管理器。从服务器端路由规则生成 Angular 路由规则和服务。

v1.1.2 2014-03-29 22:53 UTC

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