Я хочу {{linkTo}}
по /activities/:user/:by_date
маршруту:linkTo не подбирая параметры
this.resource('activities', { path: '/activities' }, function() {
this.route('by_date', {path: '/:user/:by_date'});
});
Если я сразу положить параметры в URL контроллер ведет себя правильно, и я просто хочу, чтобы мой шаблон приложения к linkTo этот URL с разумной hardcoded набор значений для этих параметров. Я пытаюсь сделать это, установив переменную экземпляра в ApplicationController
:
activityDefaults: {user:1, by_date:"2013-07-01"}
Я думаю, уже в linkTo в шаблоне приложения:
{{#linkTo "activities.by_date" activityDefaults}}Activities{{/linkTo}}
К сожалению, это не работает, решение URL для :
/activities/undefined/undefined
Любая помощь будет оценена по достоинству.
- = - = - = - = - = - = - = - = - = - = ОБНОВЛЕНИЕ - = - = - = - = - = - = - = - = - = - =
Я «ве попытался сделать в activityDefaults
объект Ember:
module.exports = activityDefaults = Ember.Object.create({
user_id: 1,
by_date: "2012-07-12"
});
а потом я добавил сериалайзер к ActivitiesByDateController
:
serialize: function(model) {
return {
user_id: model.get('user_id'),
by_date: model.get('by_date')
};
}
{{linkTo}}
еще не работает, но есть тонкие различия. Наведите указатель мыши на ссылку, в которой вы больше не видите URL-адрес за пределами базового URL-адреса (примечание: до того, как оно было /activities/undefined/undefined
). Кроме того, при нажатии на ссылке он посылает следующее сообщение на консоль браузера:
Это linkTo находится в неактивном состоянии нагрузки, потому что по крайней мере один из его параметров в настоящее время имеет нулевое/неопределенное значение, или прилагаемый имя маршрута недействительно.
Примечание: я меняла непоследовательное использование on_date/by_date быть последовательно используя by_date именования. Я немного расплывчатый, когда Ember преобразует подчеркнутые переменные и преобразует их в camelCase. Я не думаю, что я сталкиваюсь с этим, но это заставляет меня задуматься.
LOL. Да, я начал с соглашения ByDate, а затем стал лучше любить OnDate. Я всегда собирался сделать их последовательными, но не понял, что это может на самом деле вызвать проблемы из-за предположений о присвоении именования со стороны Эмбера. Думаю, еще одна причина быть последовательной. – ken
Кстати, я попробовал метод 'serialize', но это не сработало для меня. Первоначально я думал, что это потому, что 'activityDefaults' не является объектом Ember и поэтому не имеет метода get(), но я попытался сделать прямое назначение в сериализаторе - например, user_id: model.user_id' - и это тоже не получилось. Использует ли сериализатор параметр, отправленный ему, как объект Ember? – ken
В качестве последнего шага я попытался сделать объект ActivityDefaults объектом Ember, но, если я не восполнил объем этого объекта, он также не работает корректно. Примечание: когда я нажимаю ссылку linkTo, теперь он отправляет сообщение «Эта ссылка находится в состоянии неактивной загрузки, потому что по крайней мере один из ее параметров теперь имеет значение null/undefined». Я добавлю фрагмент кода к вопросу. – ken