如何从javascript将函数对象传递给Polymer元素

时间:2015-03-19 10:00:41

标签: javascript polymer

我尝试将函数转换为字符串并按如下方式传递:

var myfunc = function (name) {
    alert('It works!' +name);
}

var as_string = myfunc.toString();

var contentHtml = "<my-element post='{\"value\":\"" + target.value.toString() + "\",\"update\":\"" + as_string + "\"}'></my-element>"

但它没有正确地将其转换为字符串。当我检查开发工具时 它出现如下:

<my-element style="z-index:2998; width:700px;" post="{"value":"USUNCLM","update":"function (name) {
                    alert("It works!' +name); }"}'></my-element>

转换为函数正在JS Fiddle中工作: https://jsfiddle.net/kavyapenujuru/L0m95396/

还有其他方法将函数传递给Polymer元素吗? 或者任何其他方法来改进我的解决方案?

1 个答案:

答案 0 :(得分:1)

这是Polymer工作示例:Plunk

在父元素中定义JavaScript对象:

 domReady: function() {
        // Animal properties and method encapsulation
        this.animal = {
          type: "Invertebrates", // Default value of properties
          displayType : function(){  // Method which will display type of Animal
            console.log(this.type);
            alert(this.type);
          }
        }
  },

将其传递给子元素:

 <my-dynamic_element 
          animal='{{animal}}'>
  </my-dynamic_element>

在子元素中使用它:

 domReady: function() {
      console.log('in Dynamic:');
      this.animal.displayType();
  },

注意,传递对象时会用单引号扭曲属性:

 obj_attr='{{obj_attr}}'