2012-06-15 2 views
0

Я не уверен, что так оно и должно быть, но при отладке моего базового приложения я понял, что мои модели имеют URL-адрес API в их атрибуте ID, например:Модель базовой модели имеет URL-адрес в атрибуте id

App.houseCollection.models[0] 
     Object 
     _callbacks: Object 
     _escapedAttributes: Object 
     _pending: Object 
     _previousAttributes: Object 
     _silent: Object 
     attributes: Object 
     changed: Object 
     cid: "c4" 
     collection: Object 
     id: "/api/v1/post/4/" 
     __proto__: Object 

у меня есть маршрут, который должен получить доступ к модели в коллекции с помощью ID, то есть только числовой ID, в этом примере id = 4

Doing App.houseCollection.get('/api/v1/post/4/') работает, но я хочу, чтобы быть в состоянии сделать App.houseCollection.get(4).

ответ

2

Предположительно ваш сервер возвращает id как URL, а не просто цифру. Исправьте свой сервер или добавить parse method к вашей модели, чтобы очистить id:

parse: function(response) { 
    var matches; 
    if(response.id 
    && (matches = response.id.match(/\/(\d+)\/$/))) 
     response.id = parseInt(matches[1], 10); 
    return response; 
} 

Вы можете настроить регулярное выражение, конечно.

Смежные вопросы