从Ember组件中获取所有传入的attrs

时间:2014-12-25 13:03:31

标签: ember.js

是否可以在Ember组件中定义所有attrs?例如。如果有人像这样使用它

{{my-datepicker one='option' another='option' ... }}
组件代码中的

可以抓取或迭代传入的所有选项吗?

我相信使用阻止参数+其他即将进行的改进会更加简单,但是现在有一种黑客的方法吗?

1 个答案:

答案 0 :(得分:1)

如果有遗嘱 - 必须有办法。你要求hacky:)

App.XHackComponent = Ember.Component.extend({
  didInsertElement: function(){
    var source = this._keywords.view.source;

    var exceptions = ["helperName", "templateData", "container", "elementId", 
                      "currentState", "classNames", "classNameBindings", "controller",
                      "toString", "buffer", "element"];

    for (var key in source) {
      if(key.charAt(0) === "_") continue;
      if (source.hasOwnProperty(key) && !exceptions.contains(key)) {
       console.log("Key: " + key + ", Value: " + source[key]);
      }
    }
  }
});

工作示例here