gpt4 book ai didi

javascript - 从 ember.js 中的内部函数创建 View 时访问对象内容

转载 作者:行者123 更新时间:2023-11-30 18:11:20 27 4
gpt4 key购买 nike

我有一个覆盖 create 方法的 ember.js 对象,因此我可以将一些未知结构的 json 传递给对象内容变量。

//model
App.Order = Ember.Object.extend({

content: null,

create: function(data) {
this.set('content', data);
return this._super();
},

getView: function() {
var self = this;
return Ember.View.create({
templateName: 'order-dialogue',
classNames: ['card'],
content: self.get('content'),
name: 'house'
});
}

});

我有一个为对象生成 View 的函数,但是我无法访问父对象的内容。每次我尝试时,self.get('content') 都会返回 null

问题:

getView 函数中生成的 View 如何访问父对象的内容?

最佳答案

I have an ember.js Object that overrides the create method so I can pass some json of unknown structure to the objects content variable.

实际上您的对象并没有覆盖创建方法。它在实例上定义一个创建函数。因此,使用您发布的代码,

var order = App.Order.create({test: true}); 
console.log(order.get('content')); // undefined

要覆盖创建方法,您需要像这样reopenClass:

App.Order.reopenClass({
create: function(data) {
order = this._super();
order.set('content', data);
return order;
}
});

有了它:

var order = App.Order.create({test: true}); 
console.log(order.get('content')); // {"test": true}

How can the view generated in the getView function access the parent objects content?

正是您编码的方式。 View 没有错,它实际上是在返回父对象的内容。只是父对象的内容不是您所期望的。

参见 this jsbin一个工作示例

关于javascript - 从 ember.js 中的内部函数创建 View 时访问对象内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14522218/

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