我正在尝试在组件中创建一个下拉菜单。动作列表取决于对象的类型,但未加载对象。 对不起我的英文
首先,调用函数,然后调用Ajax,相反需要
var set_context_menu = function(model, jqobj) {
console.log(' node.type:'+model.get('type'));
}
App.CompNodeComponent = Ember.Component.extend({
didInsertElement: function() {
var node = this.get('node'); // model
var jqobj = this.$().first(); // jquery object
if(node.get('isLoaded')){
set_context_menu(node, jqobj);
}else{
// Ember.addObserver(this, 'type', this, set_context_menu(node, jqobj));
// Ember.RSVP.Promise.resolve(node.get('data')).then(function(chartData) {
// set_context_menu(chartData, jqobj);
// });
// Ember.onLoad(node, function() {
// node.on('ready', set_context_menu(node, jqobj));
// });
// Ember.addListener(node, 'load', node, set_context_menu(node, jqobj));
//node.ready(set_context_menu(node, jqobj));
}
},
Console:
node.type:undefined
ajax [object Object] // ajax to server from "node"
<script type="text/x-handlebars" data-template-name="template">
{{#each node in model}}
{{comp-node node=node}}
{{/each}}
</script>
答案 0 :(得分:0)
我有类似的问题,我的数据处于规范状态,我构建了一个函数,并在this.data.isFulfilled
上添加了一个观察者
所以也许试试:
dataFulfilled: function() {
var node = this.get('node'); // model
var jqobj = this.$().first(); // jquery object
set_context_menu(node, jqobj);
}.observes('this.data.isFulfilled'),