我有一个功能,使用lodash和vanilla javascript做我想做的事情。我传递一个值,它检查该值是否已经映射,然后检查该值是否具有特定的子属性。如果是,则通过相同的函数传递子属性。
我试图在ember应用程序中做同样的事情,但该函数是控制器中的属性。当我尝试引用函数名时,我收到一个错误:“未捕获的ReferenceError:collectHeaders不是函数”。如何将“collectHeaders(child)”的结果传递回函数?
只是lodash& javascript工作原理:
function collectHeaders(parent) {
var firstChild = parent.children ? parent.children[0] : {};
if (firstChild.section_type && firstChild.section_value) {
_.forEach(parent.children, function(child) {
collectHeaders(child)
});
} else if (parent.children) {
// more code
}
}
带有lodash的Ember.app控制器:
var mapping = {};
var CompareController = Ember.ObjectController.extend({
collectHeaders: function(parent) {
var firstChild = parent.children ? parent.children[0] : {};
if (firstChild.section_type && firstChild.section_value) {
_.forEach(parent.children, function(child) {
collectHeaders(child);
});
} else if (parent.children) {
// more code
}
},
});
export default CompareController;
答案 0 :(得分:0)
您的代码超出了范围,您之前的功能是全局的
collectHeaders: function(parent) {
var self = this;
var firstChild = parent.children ? parent.children[0] : {};
if (firstChild.section_type && firstChild.section_value) {
_.forEach(parent.children, function(child) {
self.collectHeaders(child);
});
} else if (parent.children) {
// more code
}
},
});