2015-08-21 50 views
2

我們擁有一個大型模型對象,在聚合物之外擁有和管理。我們希望通過代理元素將這個模型暴露給聚合物元素,該代理元素揭示它的計算部分。更改數組中對象的路徑通知?

例如,該模型可具有:

{ 
    blocks: { 
     ... 
     properties: [ 
     { ... }, // prop0 
     { ... }, // prop1 
     ] 
    }, 
} 

我們使用遞歸對象觀察員和陣列觀察員監測改變模型,並適當地通知聚合物(使用.notifyPath(path, ...)爲對象的變化和._notifySplice(...)數組變化)。然而,我們似乎沒有一種好的方法來通知數組內對象的變化,例如在上面的示例中更改了prop0

有嗎?路徑應該是什麼?

+0

從Docs for Polymer 1.0開始:「路徑語法不支持array-style訪問器(例如users [0] .name)。但是,您可以直接在路徑中包含索引(users.0.name) 「。 - 不知道這是你以後的樣子。 :) – Whyser

回答

0

下面是使用綁定,以顯示嵌套對象和數組內更新的聚合物屬性的示例:

代碼:

<div> 
    <h1>[[blocks.properties[0]]]</h1> 
    <p>this updated property should read: Apple</p> 
</div> 

腳本:

Polymer({ 
    is: "my-page", 

    properties: { 
    blocks: { 
     type: Object, 
     value: { properties : ["acorn","banana","carrot"] }, 
     notify: true 
    }, 
    }, 

    attached: function() { 
    console.log("update"); 
    this.set('blocks.properties[0]', "Apple"); 
    }, 

如果你需要做的陣列功能您還應該使用this.push(path, value)this.splice(path, value)來通知更改。