从Ember JS中的URL获取动态ID部分

时间:2018-11-02 05:10:57

标签: ember.js ember-cli

我有一条指向URL “ http.appname.com/employee/:empid/addproject” 的路由。

现在如何在控制器中获取动态零件:empid

2 个答案:

答案 0 :(得分:1)

您可以使用某条路线的paramsFor()方法获取特定路线的参数。例如,this.paramsFor(this.routeName)将返回执行此代码的路径的参数。

控制器可以通过target属性访问其相应的路由。

将这两部分放在一起,您可以通过执行this.target.paramsFor(this.target.routeName)从其控制器访问参数。

答案 1 :(得分:-1)

您到动态路段路线的链接应为:

{{link-to (concat "go to addproject with empid=" empid) "addproject" empid }}

您的router应该像这样启用动态参数:

this.route('addproject', {path: '/employee/:empid/addproject'});

在您的addproject model中,您可以访问动态细分参数,例如:

model: function(dto){
    return {
        empid: dto.empid
    };
}

在您的addproject controller中,您可以得到路线模型的空值,例如:

import Ember from 'ember';
import {alias} from '@ember/object/computed';

export default Ember.Controller.extend({

  controllerempid: alias("model.empid")

});

或者在您的addpoject template中,您可以使用在控制器中定义的动态细分,例如:

{{controllerempid}}

您可以查看this twiddle的用法。