Ember Ошибка обнуления: утверждение не выполнено: Опорожнение представления в состоянии inBuffer

Я получаю это утверждение при запуске кода ниже:

Очистка представления в состоянии inBuffer недопустима и не должна происходят при нормальных обстоятельствах. Скорее всего, есть ошибка в вашем выражение. Это может быть связано с чрезмерным изменением свойств уведомления.

Ссылка на демо: http://plnkr.co/edit/s3bUw4JFrJvsL690QUMi

var App = Ember.Application.create({ Store: DS.Store.extend({ revision: 4, adapter: DS.FixtureAdapter.create() }), Router: Ember.Router.extend({ root: Ember.Route.extend({ index: Ember.Route.extend({ route: "/", connectOutlets: function(router){ var person; person = App.Person.find(657); person.addObserver("isLoaded", function() { return router.get('router.applicationController').connectOutlet("things", person.get("things")); }); } }) }) }), ApplicationController: Em.Controller.extend(), ApplicationView: Em.View.extend({ template: Em.Handlebars.compile("{{outlet}}") }), ThingsController: Em.ArrayController.extend({ thingTypes: (function() { return App.ThingType.find(); }).property() }), ThingsView: Em.View.extend({ template: Em.Handlebars.compile([ '{{#each controller.thingTypes}}', '{{this.name}}', '{{/each}}', '{{#each controller.content}}', '{{this.title}}', '{{/each}}'].join("")) }), //MODELS Person: DS.Model.extend({ things: DS.hasMany('App.Thing', { embedded: true }) }), Thing: DS.Model.extend({ description: DS.attr('string'), thingType: DS.belongsTo("App.ThingType", { embedded: true }), title: (function() { return this.get("thingType.name"); }).property("description") }), ThingType: DS.Model.extend({ name: DS.attr("string") })
});
App.Person.FIXTURES = [ { id: 657, things: [ { id: 1, description: "Some text", thing_type: { id: 1, name: "type 1" } }, { id: 2, description: "Some text", thing_type: { id: 2, name: "type 2" } } ] }
];
App.ThingType.FIXTURES = [ { id: 1, name: "type 1" }, { id: 2, name: "type 2" }, { id: 3, name: "type 3" }
];

Почему это происходит?

2 ответа

У меня была такая же ошибка при попытке загрузить список выпадающих значений из светильников. То, что разрешило это, было переопределением queryFixtures на адаптере прибора:

App.FixtureAdapter = DS.FixtureAdapter.extend latency: 200 queryFixtures: (records, query, type) -> records.filter (record) -> for key of query continue unless query.hasOwnProperty(key) value = query[key] return false if record[key] isnt value true

Вероятно, я бы не подумал об этом, если бы я не установил латентность в первую очередь. Тогда ошибка была более описательной.


немного поздно, я думаю... но я получил его для работы здесь: http://plnkr.co/edit/********************

Не изменил логику, но там, где ее назвали

Я модифицировал ваш маршрутизатор следующим образом:

Router: Ember.Router.extend({ root: Ember.Route.extend({ index: Ember.Route.extend({ route: "/", connectOutlets: function(router) { var person; router.set('router.applicationController.currentPerson', App.Person.find(657)); } }) }) })

И создал ApplicationController:

ApplicationController: Em.Controller.extend({ currentPerson: null, currentPersonLoaded: function() { this.connectOutlet("things", this.get("currentPerson.things")); }.observes("currentPerson.isLoaded"), })

Я не знаю, был ли это результат, который вы хотели, но ошибка исчезла!

licensed under cc by-sa 3.0 with attribution.