Próbuję zapisać trasę, która wymaga dostępu do modelu jej rodzica. Używam this.modelFor()
, ale kiedy to robię, model rodzica nie jest całkowicie załadowany, więc wszystkie jego właściwości zawierają null
.Uzyskiwanie dostępu do nadrzędnego modelu trasy w Ember.js
Jest to router z dwóch dynamicznych segmentów:
MGames.Router.map(function() {
this.resource('games', function() {
this.resource ('game', {path: '/:game_id'}, function() {
this.resource('board', {path: '/boards/:board_id'});
});
});
});
To mój GameRoute, który działa perfekcyjnie:
MGames.GameRoute = Ember.Route.extend ({
model: function (params) {
return MGames.Game.find(params.game_id);
}
});
I wreszcie jest to trasa dla dzieci, które potrzebują dostępu do Model gry, i to jest to, co napisałem. Ale nie ma znaczenia, co robię, zawsze drukuje . Gdybym sprawdzić zmienną game
właściwość isLoad
jest zawsze zerowa:
MGames.BoardRoute = Ember.Route.extend ({
model: function (params) {
var game = this.modelFor ('game');
console.log (game.get("id"));
return MGames.Board.find(game.get("id"), params.board_id);
}
});
robię coś źle, albo (jak podejrzewam) Brakuje mi jakąś koncepcję Ember?
To był dokładnie problem. Zabawne jest to, że wczoraj próbowałem twojej modyfikacji, ale, nie wiem dlaczego, zmieniłem tylko metodę "znajdź", a opuściłem ją nietkniętą i niesłuszną. Sprytnie. Przy okazji, dałbym ci kolejne +1, gdybym mógł zająć się sprawą poprzedniego pytania i użyć go do uzupełnienia odpowiedzi. Dziękuję bardzo! –
Ten kod zaczyna wyglądać znajomo. :) –