2014-08-27 77 views
0

我使用Polymer Designer中的代碼鏡像組件,可以設置初始值,但無法看到如何從用戶獲取對代碼的更改。獲取代碼鏡像元素的值

我初始化使用

<code-mirror id="code_mirror" value="{{code}}"> 


</code-mirror> 

代碼鏡像,並想聽聽在{{代碼}},但codeChanged似乎不火的變化。

我知道我可以使用code_mirror。$。mirror.getValue()來獲取實際值,但想要使用數據綁定。

我試過使用on-change無濟於事。

回答

1

假設你正在使用https://github.com/PolymerLabs/code-mirror你需要做的就是在ready創建處理該實例本身發射的一些事件CodeMirror實例什麼,然後進行code-mirror元素火any custom event(一些東西,我知道被稱爲事件中繼

以下示例使所述聚合物元件觸發定製事件code-change每當編輯值改變

ready: function() { 
    var me = this; 
    //... 

    this.mirror = CodeMirror(this.shadowRoot, { /* ... */ }); 

    this.mirror.on('change', function() { 
     // me = polymer instance 
     me.fire('code-change', { value: me.mirror.getValue() }) 
    }); 
} 

然後將聚合物定製元素的任何實例都需要通過addEventListener

第一殼體聽用聚合物的聲明式事件映射或該事件(如果code-mirror是內部另一<polymer-element />):

<code-mirror on-code-change="{{ onCodeChange }}"></code-mirror> 
// ... 
<script> 
Polymer({ 
    onCodeChange: function(event, detail, sender) { ... } 
}); 
</script> 

第二殼體() :

<code-mirror></code-mirror> 
<script> 
    document 
     .querySelector('code-mirror') 
     .addEventListener('code-change', function() { ... }); 
</script>