[英]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.