2012-08-14 94 views

回答

6

這是故意行爲流星。在文檔中:

手寫應用程序中另一個棘手的問題是元素 保存。假設用戶正在將文本輸入到元素 中,然後包含該元素的頁面區域被重畫。 用戶可能在顛簸行程中,因爲重新創建焦點時,光標 位置,部分輸入的文本以及重音字符輸入 狀態將會丟失。

這是Meteor自動解決的另一個問題。只需讓 確定每個可聚焦元素都有唯一的ID,或者 的名稱在具有ID的最近父級中具有唯一性。 流星將保留這些元素,即使它們的封閉模板 被重新渲染,但仍會更新其子項並複製任何 屬性更改。

流星不會更新<input><textarea>具有焦點,因爲在許多情況下,如果他們試圖進入的東西,這將是極大干擾用戶(想象一下你在現場時,輸入了一個段落突然被覆蓋)。但是,這意味着用戶在與其他用戶發生「碰撞」或其他反應性更改時不會獲得更新。如果你想覆蓋這種行爲,你可能會隱藏<div>或js數據元素,你可以用它來爲你的應用程序進行適當的更新(也許標誌着有新值或簡單地覆蓋它)。這種衝突不是微不足道的,可能需要根據具體情況採取不同的行爲。 Meteor未來的版本可能會給我們一些工具來處理這個問題。有關更多背景信息,請參閱this post

+0

編輯添加一個鏈接到一些額外的信息的前景,更多類似Google Wave的行爲。 – rdickert 2012-08-23 17:48:22

0

<textarea>{{some_val}}</textarea>工作正常,我都當現場的收益和失去焦點。

我希望你在做什麼,

Template.mytemplate.some_val = "Whatever you want to write";

Template.mytemplate.some_val = function() { 
    var someValue = "Whatever you want to write"; // Can also get from DB 
    return someValue; 
} 

與模板,

<template name="mytemplate"> 
    <textarea>{{some_val}}</textarea> 
</template> 
相關問題