如何在外部修改用於dom_repeat模板的對象後重新生成模板?如何在外部修改dom-repeat模板中使用的對象後重新生成模板內容?
我有一個文件列表創建與紙張項目列表,從文件對象的數組繪製。
現在,當我更新文件對象的路徑時,列表不會更新顯示值。而顯示相同文件的所有其他字段都會更新。
我錯過了什麼嗎?
使用的模板代碼:
<paper-menu attr-for-selected="value" selected="{{currentFile}}">
<template id="filesList" is="dom-repeat" items="{{files}}">
<paper-item value="{{item}}">
<div>{{item.path}}</div>
<paper-icon-button icon="fa:pencil" on-tap="propertiesAction"></paper-icon-button>
</paper-item>
</template>
</paper-menu>
對象屬性:
files: {
type: Object,
value: [],
notify: true,
observer: 'filesChanged'
},
currentFile: {
type: Object,
notify: true
},
在列表中選擇一個文件後,currentfile顯示正確的值,但該文件列表中仍然顯示舊路徑。
編輯: 下面的模板是一個對話框,可以更改文件的路徑。
<template>
<editor-dialog
id="inputDialog"
style="z-index: 14"
title="{{title}}">
<paper-input id="fileName" name="filename" label="Filename" value="{{file.path}}"></paper-input>
<paper-button id="saveButton">Save</paper-button>
<!--paper-input name="mode" value="false"></paper-input-->
</editor-dialog>
</template>
Polymer({
is:'editor-file-properties',
properties: {
file: {
type: Object,
value: {},
notify: true
},
title: {
type: String,
value: function() {
return this.file ? 'Edit file properties' : 'New file';
}
}
},
listeners: {
'saveButton.tap': 'saveFile'
},
saveFile: function() {
var sFileName = this.$.fileName.value;
if (sFileName == "")
return;
if (!this.file)
{
var obj = this;
FileModel.create(sFileName, function (file) {
obj.file = file;
});
}
this.notifyPath('file.path', this.file.path);
this.$.inputDialog.close();
},
之前,我打開對話框,我設置文件currentFile或
this.$.fileDialog.file = this.currentFile;
我現在已經改變了這種使用綁定。此代碼是僅低於DOM重複模板
現在,當我打字的currentFile的標題欄被立即更新,但仍然是文件列表中不直接更新當前文件。有沒有任何手動綁定兩個元素的方法?
你能後,您更新文件對象的代碼。 – Srik
我已經更新瞭如何修改文件的問題。 – AltWouss