我正在从 Ember 1.7 升级到 Ember 1.8.0-beta.2(增量升级,我希望能顺利到达最新的 1.8.0-beta.4)。
显然,Ember.TextField是deprecated :
DEPRECATION: Resolved the view "Ember.TextField" on the global context. Pass a view name to be looked up on the container instead, such as {{view "select"}}. http://emberjs.com/guides/deprecations#toc_global-lookup-of-views-since-1-8
这是我最初的实现:
{{view Ember.TextField classNames="form-control" valueBinding="properties§name" id="name-id" placeholderTranslation="generic.name" required="true"}}
所以我尝试了(就像我对其他 View 所做的那样):
{{view "textField" ...}}
没有运气:
Uncaught Error: Assertion Failed: textField must be a subclass of Ember.View, not
所以,它现在似乎是一个 component .所以我尝试:
{{input type="text" classNames="form-control" value=properties§name id="name-id" placeholderTranslation="generic.name" required="true"}}
它似乎有效,但我担心我可能做错了什么,因为 id
和 classNames
和 placeholderTranslation
都不是列为 supported properties对于 input
组件。
所以这是我的问题:
- 我在重构
{{view Ember.TextField}}
->{{input type="text"}}
方面是否正确? - 未明确支持的属性怎么办?他们似乎对我有用。这是文档过时的问题,还是...
- 是否有所有组件都支持的通用属性列表?我找不到。
最佳答案
关于你在 ember 上的问题,这里是我一步一步的回答:
是的,您进行了正确的重构
OLD- {{view Ember.TextField}} NEW- {{input type="text" value="" name="" class=""}}
html 输入无论如何都支持“类”等属性,因此当您添加类、占位符等内容时,根据我的理解,这些将自动得到支持
还有所有在 Ember Doc 中提到的属性(property)除此之外 html 中支持的任何内容将永远工作。您可以阅读 ember Ember source-code 中提到的评论
{{input type="text" value="111" name="mytest" class="icon" id="wow"}} AND I got <input id="wow" class="ember-view ember-text-field icon" type="text" name="mytest" value="111">
关于ember.js - 从 {{view Ember.TextField}} 到 {{input type ="text"}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261173/