我们已经有了Angular路由和Angular路由应用程序。但是,我们需要做一些事情,例如通过电子邮件或通过Twitter发送链接。这些必须在需要在服务器端生成路由的服务器上完成
这意味着我们要么需要复制当前包含在Angular路由文件中的路由逻辑和路径帮助程序,要么找到一种方法来解析服务器上的Angular路由文件,然后生成ruby path_helper方法。
有没有简单的方法可以做到这一点-一些Rails插件或类似工具?
编辑(以澄清)
我需要能够生成服务器上和cron作业期间页面的链接。如果这是一个Rails应用程序,我将能够使用edit_user_path @user
之类的路径帮助器。
问题在于路由的逻辑现在在Angular中。因此,无法在 rails 侧生成路径。我需要一些方法来做到这一点。无法从客户端完成此操作,因为客户端将不存在-可以从cron作业中激活它
最佳答案
我假设您希望用户能够以网址访问myapp.com/something/unique-333/。
代替复制路由,您将有一个分配给URL前缀的 Controller 来处理它。 Controller 将检查URL的后缀(/unique-333
),并执行需要做的特定于该URL的所有操作。
如果您想在后端和前端之间共享它,则可以通过将URL前缀存储在后端中来实现,而在前端上,您将在服务初始化和更新路由器后立即获取它。
它看起来像这样:
/* REST API */
function get_url_prefix() {
return '/something/';
}
function get_obj() {
return JsonResponse({
'data': obj,
'url': get_url_prefix() + obj.id + '/';
});
}
在AngularJS的前端:
.config(function($routeConfig, restApi) {
restApi.get_url_prefix().then(function(urlPrefix) {
$routeConfig = {
urlPrefix: CtrlToHandleUniqueRoutes
};
});
});
您的 Controller 基本上可以充当唯一网址的路由器。请注意,唯一的URL完全存在于后端中。