2014-09-15 2 views
2

Я новичок в EmberJS. Было бы здорово, если бы вы могли дать подробное объяснение. У меня есть апи конечную точку для извлечения продуктов, которые ожидают запрос GET по следующему url-Ошибка консоли EmberJS Ошибка при загрузке маршрута: не определено

/api/products?date=2014-09-16&meal_type=2 

Здесь, дата и meal_type являются параметрами запроса. Мой router.js выглядит this-

App.Router.map(function() { 
     this.resource('products', { path: '/products/date/:date/meal/:mealType'}); 
    }); 

    App.Router.reopen({ 
     location: 'history' 
    }); 

Причина этого динамического маршрут является то, что URL-адрес моего приложения, как представляется, в том же формате.

маршруты/product.js выглядит как-

App.ProductsRoute = Ember.Route.extend({ 
     model: function(params) { 
     return this.store.findQuery('product', {date: params.date, meal_type: params.mealType}); 
    }, 

     queryParams: { 
     date: { 
      refreshModel: true 
     }, 
     mealType: { 
      refreshModel: true 
     } 
     }, 

});

контроллер/products_controller.js

App.ProductsController = Ember.ArrayController.extend({ 
     queryParams: ['date', 'meal_type'], 
     date: null, 
     meal_type: null, 

     products: function() { 
     return this.get('model.content'); 
     }.property() 

Я получаю сообщение об ошибке в браузере Console-

Error while loading route: undefined 

Это, как представляется, в строке ember.js тела = 1: 3522.

Любая помощь будет высоко оценена. Спасибо

+0

попробуйте следующее: измените /// this.resource ('products', {path: '/ products/date /: date/meal /: mealType'}); /// to this.resource ('products') ;. Как я подозреваю, путь - это просто указать URL-адрес и потому, что вы маршрутизируетесь с этим URL-адресом, таким образом, имея такую ​​ошибку. Попробуйте записать параметры с кодом, который я включил, если параметры видны, то вы можете идти вперед и делать все, что вы делаете в своем маршруте. Надеюсь, поможет. – LanNguyen

+0

URL-адрес, включая путь, был настроен для динамической маршрутизации. Я попробовал ваше решение, но получил ошибку. 'Неиспользуемая ошибка: утверждение не выполнено: ошибка: утверждение не выполнено: URL '/ products/date/2014-09-16/meal/1' не соответствует никаким маршрутам в вашей заявке' –

+0

of Конечно, это вернет ошибку. Если вам нужен маршрут с этим URL. Это должно быть что-то вроде этого: this.resource ('продукты', функция() { \t this.resource ('дата', 'путь': '/: products_date', функция() { \t \t это. ресурс ('еда', 'путь': '/: products_meal') \t}) }); – LanNguyen

ответ

1

Проведя много исследований об ошибке, я выяснил несогласованность в базе данных. Я разрешил ошибку, восстановив согласованный дамп базы данных.

Заключение: EmberJS ожидает, что данные будут согласованы. В противном случае он может вызывать ошибки, которые трудно отлаживать.