#rally
#rally
Вопрос:
Как мне динамически создать URL-адрес для встраивания ссылки для записи UserStory по сравнению с жестким кодированием строки?
Ext.create('Rally.data.WsapiDataStore', {
model: 'UserStory',
fetch: ['ObjectID'],
listeners: {
load: function (store, records) {
Ext.each(records, function(record) {
var ref = "https://rally1.rallydev.com/#/14139205418d/detail/userstory/" record.get('ObjectID');
}
}
}
});
Ответ №1:
В примере приложения в этом репозитории github я получаю проект из контекста приложения:
var project = this.getContext().getProject();
this._projectOid = project.ObjectID;
а затем сконструировать URL-адрес без необходимости жестко кодировать ObjectId проекта:
return '<a href="https://rally1.rallydev.com/#/' that._projectOid '/detail/iteration/' record.get('ObjectID') '" target="_blank">' record.get('Name') '</a>';
Этот пример предназначен для итерации, но вы можете адаптировать его для истории пользователя.
ОБНОВЛЕНИЕ: согласно комментарию Марка, даже не нужно проходить контекст, чтобы получить OID проекта, чтобы перейти на страницу сведений о пользователе — перенаправление позаботится об этом автоматически.
Комментарии:
1. Обратите внимание, что OID проекта не требуется. Следующая форма: rally1.rallydev.com/#/detail/userstory/12345678910 действителен для любого артефакта ралли и будет автоматически перенаправлен на соответствующий проект.
2. @Отметьте W True, спасибо, ссылка перенаправления автоматически будет включать oid проекта.
3. Я не понимал, что проект не нужен. Спасибо, что указали на это.
Ответ №2:
Это должно сработать:
http://help.rallydev.com/apps/2.0rc3/doc /#!/api/Rally.nav.Manager-метод-getDetailUrl
var url = Rally.nav.Manager.getDetailUrl(record);
Комментарии:
1. Я пробовал вашу функцию вчера и снова сегодня, и я получаю сообщение об ошибке «Не удается прочитать свойство ‘Manager’ неопределенного»
2. Какую версию sdk вы используете? 2.0rc3 был выпущен совсем недавно — это была версия, на которую я ссылался в документах выше. Он должен поддерживаться в версии 2.0 rc1 и выше.