EmberJS: изменить url для загрузки модели (ember-data)
У меня проблемы с ember-данными. Например, я создал проект в http://localhost/~ me/test
В моем проекте я создал магазин и модель следующим образом:
... init stuff here ...
var attr = DS.attr;
App.Person = DS.Model.extend({
firstName: attr('string'),
lastName: attr('string'),
});
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter,
});
Теперь, когда я ищу (где-то на моем пути) для такого человека
var person = App.Person.find(params);
Вызывается http://localhost/persons? post_id = 10. Конечно, этого не существует. Я бы ожидал чего-то вроде http://localhost/~ me/test/persons? Post_id = 10. Еще лучше: http://localhost/~me/test/persons.php? Post_id = 10 Как я могу изменить этот URL?
Ответы
Ответ 1
Это относится к бета-версии 3 Ember Datah1 >
Чтобы позаботиться о префиксе, вы можете использовать свойство namespace
DS.RESTAdapter
. Чтобы позаботиться о суффиксе, вы хотите настроить buildURL
метод DS.RESTAdapter
, используя _super()
, чтобы получить исходную функциональность и изменить ее. Он должен выглядеть примерно так:
App.ApplicationAdapter = DS.RESTAdapter.extend({
namespace: '~me/test',
buildURL: function() {
var normalURL = this._super.apply(this, arguments);
return normalURL + '.php';
}
});
Ответ 2
MilkyWayJoe прав, в вашем адаптере вы можете определить пространство имен.
App.Adapter = DS.RESTAdapter.extend({
namespace: '~/me/test'
});
Ответ 3
Это тоже сработает:
App.Person = DS.Model.extend({
url: '~me/test/persons',
firstName: attr('string'),
lastName: attr('string'),
});
Или, если вы хотите использовать пространство имен и путь .php:
App.Adapter = DS.RESTAdapter.extend({
namespace: '~/me/test',
plurals: {
"persons.php": "persons.php",
}
});
App.Person = DS.Model.extend({
url: 'persons.php',
firstName: attr('string'),
lastName: attr('string'),
});
Бит множественных чисел должен убедиться, что Ember Data не добавляет 's', например. person.phps