network
モデルのインプレース編集をセットアップしました。モデルのtitle
と の2 つの入力フィールドがあります。ユーザーがタイトルをクリックすると、正規の Todos の例と同様に、のタグがdescription
切り替わります。<h2>
<input>
次のように、関連するテンプレートにイベントを追加しています。
Template.network_edit.events = {}
Template.network_edit.events['click #network-description'] = ->
Session.set('editing_network_description',true)
Meteor.flush()
focus_field_by_id('network-description-input')
Template.network_edit.events['click #network-title'] = ->
Session.set('editing_network_title',true)
Meteor.flush()
focus_field_by_id('network-title-input')
focus_field_by_id
機能は、
var focus_field_by_id = function (id) {
var input = document.getElementById(id);
if (input) {
input.focus();
input.select();
}
};
すべてが期待どおりに機能しますが、 をクリックすると#network-description
、コンソールに次のエラーが表示されます。
Uncaught TypeError: Cannot read property 'parentNode' of null
の 600 行目でスローされliveui.js
ます。をクリックして#network-title
も、そのようなエラーは表示されません。
イベントの順序を逆にして、#network-title
イベントを最初に配置し、network-description
2 番目にすると、代わりに をクリックするとエラーが発生します#network-title
。通常、追加された最初のイベントはこのエラーをスローしますが、後続のイベントはスローしません。
私が言ったように、すべてが適切に機能しているように見えます (入力が表示され、フォーカスが得られるなど) が、エラーは当惑しており、何かが欠けている可能性があります。