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

It is necessary to catch the load object, component ember

本文关键字:组件 对象 加载      更新时间:2023-09-26

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

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

我也有类似的问题,我的数据处于规范状态,我构建了一个函数并在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'),