如何使用 deepstream 记录 select ds-lists
How to use deepstream records to select ds-lists
我的聚合物应用程序中的 selection of ds lists 有问题。我有一个有效的聊天标题列表(作为深度记录实现),应该用于 select 匹配的聊天历史记录(作为包含聊天消息作为记录的深度列表实现)。
<div class="chatlist">
<!-- This is the list of chats -->
<paper-menu selected="[[chatlist]]">
<paper-item>
<paper-input label="New Chat:" id="chatName" on-keydown="setChatName"></paper-input>
</paper-item>
<template
is="dom-repeat"
items="[[todos]]"
as="recordId">
<div role="listbox">
<chat-names
name="[[recordId]]">
</chat-names>
</div>
</template>
</paper-menu>
</div>
<!-- this is the chat history -->
<iron-pages
selected="[[chatlist]]"
attr-for-selected="chatView"
fallback-selection="chatView404"
role="main">
<template
is="dom-repeat"
items="[[todos]]"
as="recordId">
<chat-view
chatView="[[???]]"
name="[[recordId]]">
</chat-view>
</template>
</iron-pages>
所以这是我的问题:虽然 chat-list 工作正常,但我不知道如何将聊天本身的 selection 连接到匹配聊天记录的显示。
聊天标题的创建发生在 paper-input on-keydown="setChatName"
函数中,如下所示:
setChatName: function (e) {
if (e.which === 13) {
var recordId = 'polymer-example/' + this.ds.getUid();
var todo = this.$$( '.new-record-input' ).value;
var todoRecord = this.ds.record.getRecord( recordId );
var todoList = this.ds.record.getList( this.name );
todoRecord.set( { name: todo, checked: false } )
todoRecord.whenReady( function() {
todoList.addEntry( recordId );
} );
this.$.chatName.value = '';
}
},
我现在如何才能不仅设置聊天名称本身的记录,还设置包含聊天记录的ds-list?并且: ds-list 的哪些属性是有用的(例如。id?name?)可以用作 select 的属性吗?
抱歉问题太长了,非常感谢每一个答案!
首先,请原谅我,我对你给出的例子感到困惑。
第二个代码片段似乎是待办事项应用程序的示例代码。如果您使用描述性变量名称,将会有很大帮助。
您似乎拥有允许用户创建新聊天名称的代码,其中创建了一条名为 'polymer-example/$RANDOM_ID'
的记录(我建议使用类似 'chat-details/$RANDOM_ID'
的值) { name: $CHAT_NAME, checked: false }
。
然后将记录 'polymer-example/$RANDOM_ID'
添加到包含一些聚合物 属性 的列表中
您有一个深层名称列表,其中每个名称对应一个包含聊天名称的深层记录。
假设您想存储对当前所选聊天的引用,我建议您将相应的聊天 ID(在提供的示例中称为 recordId
)存储为 属性,或者您可以存储对记录本身的引用。
为了存储聊天记录,我建议为每次聊天创建另一个列表(称为 'chat-history/$CHAT_ID'
)。
然后对于每条新消息,您可以创建一条对应的记录('chat-message/$RANDOM_ID'
)并使用它来存储消息内容,发件人姓名,时间等。现在将您的消息记录名称添加到聊天记录列表中.
选择正确的聊天记录只是获取当前选择的聊天记录(chatId
),获取包含消息ID列表的列表'chat-history/' + chatId
,然后获取记录'chat-message/' + messageId
。
我的聚合物应用程序中的 selection of ds lists 有问题。我有一个有效的聊天标题列表(作为深度记录实现),应该用于 select 匹配的聊天历史记录(作为包含聊天消息作为记录的深度列表实现)。
<div class="chatlist">
<!-- This is the list of chats -->
<paper-menu selected="[[chatlist]]">
<paper-item>
<paper-input label="New Chat:" id="chatName" on-keydown="setChatName"></paper-input>
</paper-item>
<template
is="dom-repeat"
items="[[todos]]"
as="recordId">
<div role="listbox">
<chat-names
name="[[recordId]]">
</chat-names>
</div>
</template>
</paper-menu>
</div>
<!-- this is the chat history -->
<iron-pages
selected="[[chatlist]]"
attr-for-selected="chatView"
fallback-selection="chatView404"
role="main">
<template
is="dom-repeat"
items="[[todos]]"
as="recordId">
<chat-view
chatView="[[???]]"
name="[[recordId]]">
</chat-view>
</template>
</iron-pages>
所以这是我的问题:虽然 chat-list 工作正常,但我不知道如何将聊天本身的 selection 连接到匹配聊天记录的显示。
聊天标题的创建发生在 paper-input on-keydown="setChatName"
函数中,如下所示:
setChatName: function (e) {
if (e.which === 13) {
var recordId = 'polymer-example/' + this.ds.getUid();
var todo = this.$$( '.new-record-input' ).value;
var todoRecord = this.ds.record.getRecord( recordId );
var todoList = this.ds.record.getList( this.name );
todoRecord.set( { name: todo, checked: false } )
todoRecord.whenReady( function() {
todoList.addEntry( recordId );
} );
this.$.chatName.value = '';
}
},
我现在如何才能不仅设置聊天名称本身的记录,还设置包含聊天记录的ds-list?并且: ds-list 的哪些属性是有用的(例如。id?name?)可以用作 select 的属性吗?
抱歉问题太长了,非常感谢每一个答案!
首先,请原谅我,我对你给出的例子感到困惑。 第二个代码片段似乎是待办事项应用程序的示例代码。如果您使用描述性变量名称,将会有很大帮助。
您似乎拥有允许用户创建新聊天名称的代码,其中创建了一条名为 'polymer-example/$RANDOM_ID'
的记录(我建议使用类似 'chat-details/$RANDOM_ID'
的值) { name: $CHAT_NAME, checked: false }
。
然后将记录 'polymer-example/$RANDOM_ID'
添加到包含一些聚合物 属性 的列表中
您有一个深层名称列表,其中每个名称对应一个包含聊天名称的深层记录。
假设您想存储对当前所选聊天的引用,我建议您将相应的聊天 ID(在提供的示例中称为 recordId
)存储为 属性,或者您可以存储对记录本身的引用。
为了存储聊天记录,我建议为每次聊天创建另一个列表(称为 'chat-history/$CHAT_ID'
)。
然后对于每条新消息,您可以创建一条对应的记录('chat-message/$RANDOM_ID'
)并使用它来存储消息内容,发件人姓名,时间等。现在将您的消息记录名称添加到聊天记录列表中.
选择正确的聊天记录只是获取当前选择的聊天记录(chatId
),获取包含消息ID列表的列表'chat-history/' + chatId
,然后获取记录'chat-message/' + messageId
。