有必要捕获加载对象,组件余烬

时间:2015-05-18 15:08:32

标签: javascript ember.js

我正在尝试在组件中创建一个下拉菜单。动作列表取决于对象的类型,但未加载对象。 对不起我的英文

首先,调用函数,然后调用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>

1 个答案:

答案 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'),