簡體   English   中英

訪問#with幫助程序中的Ember視圖

[英]Accessing the Ember view within a #with helper

當我嘗試從#with幫助程序中訪問視圖元素時,我看到了奇怪的行為。 也許這是預期的,但通過Changelog查看最新的Ember版本,我找不到任何我希望引起這種行為的東西。

這是我的玩具模板:

{{#with model as "bar"}}
  <label {{bind-attr for="view.inputField.elementId"}}>My Label</label><br/>
  {{input type="text" viewName="inputField" valueBinding="bar"}}<br/><br/>
  The id for the input field is {{view.inputField.elementId}}
{{/with}}

對於Ember 1.6.1,正確顯示輸入字段ID,並正確設置標簽的屬性。

對於Ember 1.7.1,渲染失敗完全是因為“未捕獲的錯誤:斷言失敗:無法在未定義的對象上使用'inputField.elementId'調用get”

對於Ember 1.8.1,將呈現頁面,但不顯示輸入字段ID,並且未設置標簽的屬性。

對於Ember 1.9.0-beta.1,我們回到了Ember 1.6.1中的行為。

以下是每個ember版本的jsbins:
Ember 1.6.1 - http://jsbin.com/lozape/4/edit
Ember 1.7.1 - http://jsbin.com/xicove/1/edit
(我是一個SO菜鳥,所以我必須在評論中添加我的其他jsbins,我猜)

我應該在這里發生什么? 是1.7和1.8車的行為,並修復了1.9? 是否有一種解決方法可以讓它在1.8中正常工作?

首先,快速說明: valueBinding="bar"是遺留語法。 您通常應該使用value=bar來動態地將value綁定到bar

我搜索了錯誤報告,最相關的報告似乎是https://github.com/emberjs/ember.js/issues/5348
我不確定為什么它只會在1.9修復,但也許它與這些棄用有關

建議避免必須指定for屬性是將輸入放在標簽內:

{#with model as "bar"}}
  <label>My Label
    {{input type="text" viewName="inputField" value=bar}}<br/><br/>
  </label><br/>
{{/with}}

您還可以嘗試使用組件來封裝模板的該部分,而不是使用{{with}}幫助程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM