Извлечение части динамического идентификатора из URL в Ember JS - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть маршрут, указывающий на URL "http.appname.com/employee/:empid/addproject" .

Теперь, как я могу получить динамическую часть : empid в контроллере?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2018

Вы можете получить параметры для определенного маршрута, используя метод paramsFor() некоторого маршрута. Например, this.paramsFor(this.routeName) вернет параметры для маршрута, в котором выполняется этот код.

Контроллер имеет доступ к соответствующему маршруту через target свойство.

Соединяя эти две части, вы можете получить доступ к параметрам из его контроллера, выполнив this.target.paramsFor(this.target.routeName).

0 голосов
/ 02 ноября 2018

Ваша ссылка на ваш маршрут динамического сегмента должна выглядеть следующим образом:

{{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 вы можете получить empid модели маршрута, например:

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

export default Ember.Controller.extend({

  controllerempid: alias("model.empid")

});

Или в вашем addpoject template вы можете использовать динамический сегмент, определенный в вашем контроллере, например:

{{controllerempid}}

Вы можете взглянуть на этот твидл для этого использования.

...