gpt4 book ai didi

ember.js - Controller 内的 Ember 访问模型

转载 作者:行者123 更新时间:2023-12-02 13:46:49 26 4
gpt4 key购买 nike

如何从 Controller 内访问模型?当前使用下面的代码返回“未定义不是函数”(去图 JS 失败...)。

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'});
});

最佳答案

我终于明白了。 plan = this.get('model') 适用于该操作。它返回模型,并且可以使用 plan.get('price') 访问属性。不太理想,但它可以完成工作。为什么它不起作用是因为它位于一个函数内部,该函数是从操作内部作为回调调用的。因此,“this”的范围可能也没有执行到回调函数。我将回调函数作为操作内的内部函数移动,然后“this”作用域起作用了。

关于范围问题,解决方案如下setting an application controller variable to results returned from AJAX call

关于ember.js - Controller 内的 Ember 访问模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048509/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com