gpt4 book ai didi

dart - 如何使用 AngularDart 获取表达式中的路由参数?

转载 作者:行者123 更新时间:2023-12-01 00:15:40 28 4
gpt4 key购买 nike

我试图直接从由路由控制的 URL 转到属性值。最简单的方法是什么?

我有一条看起来像这样的路线:

  ..addRoute(
name: 'activities',
path: '/activities',
enter: view('views/activities.html'),
mount: (Route route) => route
..addRoute(
name: 'view',
path: '/:activityId',
enter: view('views/activity.html')));

我希望以下内容有效:

/事件/activities/f4f3j4093j4f

views/activity.html 的内容:

<activity-photo activity-id="{{how to get this? I have it in the route}}"></activity-photo>

如您所见,我的 View 只是一个具有一个自定义属性的自定义元素。我可以直接从路由参数中填充该自定义属性吗?

最佳答案

对于 View 中的任何组件/指令/ Controller ,您可以要求注入(inject) RouteProvider,它具有 parameters 字段( map )。

@NgComponent(
selector: 'activity-photo',
...)
class ActivityPhotoComponent {
ActivityPhotoComponent(RouteProvider routeProvider) {
String activityId = routeProvider.parameters['activityId'];
_loadActivity(activityId);
}
}

这与您在示例中指定的方式略有不同。这里的用法是:

<activity-photo></activity-photo>

事件照片会自行找到事件 ID。

或者,您可以为 View 创建一个 Controller ,但我想您需要用另一个标签包装您的模板...例如:

<div id="activity-view">
<activity-photo activity-id="ctrl.activityId"></activity-photo>
</div>

.

@NgController(
selector: '#activity-view',
publishAs: 'ctrl')
class ActivityViewController {
String activityId;

ActivityViewController(RouteProvider routeProvider) {
String activityId = routeProvider.parameters['activityId'];
}
}

关于dart - 如何使用 AngularDart 获取表达式中的路由参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21057714/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com