Braise modèle d'accès à l'intérieur d'un contrôleur
Comment un modèle d'être accessible à partir d'un contrôleur ? Actuellement en utilisant le code ci-dessous renvoie un "undefined n'est pas une fonction" (allez savoir JS en panne...).
models/plan.js
import DS from 'ember-data';
export default DS.Model.extend({
name: DS.attr('string'),
period: DS.attr('number'),
price: DS.attr('number'),
});
routes/checkout.js
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('plan', params.plan_id);
}
});
controllers/checkout.js
import Ember from 'ember';
export default Ember.Controller.extend({
submitPayment: function(error, result)
{
var plan = this.get('model');
}
}
router.js
Router.map(function() {
this.route('checkout', {path: '/checkout/:plan_id'});
});
peut-être que 'ce' est pas le contrôleur dans 'submitPayment'. Est submitPayment une action? Si oui, vous devriez le mettre à l'intérieur d'une des actions de l'objet. Ou la caisse de la conventuelles, est modèle récupérée dans le modèle de crochet?
submitPayment est juste une fonction qui est appelée à partir d'une action. Oui, le modèle est stocké, pas de problèmes là-bas.
Au lieu d'étendre " la Braise.Contrôleur", essayez " de Braise.ObjectController'.
Pas de différence. Bien si j'ai de l'utilisateur.get('model') à l'intérieur de l'action au lieu de la fonction à partir de ci-dessus, j'obtiens un objet. Il a seulement l'id de l'ensemble cependant, au lieu de tous les champs. Pourquoi est-ce ? Aussi, si je l'utilise.get('modèle.prix"), je reçois le prix réel. Alors, comment puis-je obtenir de l'ensemble du modèle à l'intérieur d'une seule variable ?
Je ne suis pas familier avec la braise de données. Vous pourriez avoir besoin de les appeler.get('model').la méthode toJSON()
submitPayment est juste une fonction qui est appelée à partir d'une action. Oui, le modèle est stocké, pas de problèmes là-bas.
Au lieu d'étendre " la Braise.Contrôleur", essayez " de Braise.ObjectController'.
Pas de différence. Bien si j'ai de l'utilisateur.get('model') à l'intérieur de l'action au lieu de la fonction à partir de ci-dessus, j'obtiens un objet. Il a seulement l'id de l'ensemble cependant, au lieu de tous les champs. Pourquoi est-ce ? Aussi, si je l'utilise.get('modèle.prix"), je reçois le prix réel. Alors, comment puis-je obtenir de l'ensemble du modèle à l'intérieur d'une seule variable ?
Je ne suis pas familier avec la braise de données. Vous pourriez avoir besoin de les appeler.get('model').la méthode toJSON()
OriginalL'auteur Bogdan Zurac | 2015-01-20
Vous devez vous connecter pour publier un commentaire.
J'ai compris par la suite.
plan = this.get('model')
travaille pour l'action. Il renvoie le modèle, et les propriétés peuvent être accessibles avecplan.get('price')
. Pas idéal, mais il fait le travail. Pourquoi il n'a pas de travail parce qu'il était à l'intérieur d'une fonction qui a été appelé comme un rappel à partir de l'intérieur de l'action. Alors, probablement, le champ d'application de la "ce" n'était pas réalisée à la fonction de rappel. J'ai déplacé la fonction de rappel comme une fonction interne à l'intérieur de l'action, alors "ce" champ d'application travaillé.Quant à la portée de problème, voici la solution réglage d'un contrôleur d'application variable de résultats renvoyés par appel AJAX
Pensé à elle. Il fonctionne comme ceci dans un contrôleur: message: de Braise.calculée.alias('model.message'),...
OriginalL'auteur Bogdan Zurac