2015-08-03 92 views

回答

0

您對obj_filters變化需要使用聚合物API進行(見herehere)。

例如,

obj_filters[by][title] = true 

應改爲類似

this.set(["obj_filters", by, title], true) 

也有看API description。爲了找到相關的部分,搜索「設置(」

編輯

我發現兩個問題,導致你的問題。 首先聲明你的計算特性如下(注意*)。

filters:{ 
    computed: 'getFilters(data,byArray,obj_filters.*)' 
}, 

其次,當你調用this.set(["obj_filters",by,title], true);首次obj_filters.by尚未定義,obj_filters.by.title不能設置,因爲路徑不存在。解決此問題的方法是先初始化它。

if (!this.obj_filters[by]) { 
    this.set(["obj_filters",by], {}); 
} 
this.set(["obj_filters",by,title], true); 
+0

謝謝@Maria我tryed沒有影響的http:// jsbin。 com/todonohike/2/edit?html,輸出 – marcus7777

+0

@ marcus7777我已經對答案做了一些編輯。 – Maria

+0

感謝@瑪麗亞 – marcus7777

1

如果我只是更新obj_filter

var new_obj_filters = this._setFilter(title, index, by, max, this.obj_filters); 
    this.obj_filters = new_obj_filters; // no 'computed properties' are fired. 

如果我克隆它觸發就好對象:

var obj_filters = this._setFilter(title, index, by, max, this.obj_filters); 
    this.obj_filters = clone(obj_filters); // TODO why clone ??? but fixed! 
+0

添加了一個問題https:// github.com/Polymer/polymer/issues/2208 – marcus7777