Ember.js 将视图层次结构从ember-0.9.8.1移植到ember-1.0.0-rc.6
我无法理解这件事。我已经从这个(图像预览+上传的展示)开始,它正在使用Ember.js 将视图层次结构从ember-0.9.8.1移植到ember-1.0.0-rc.6,ember.js,Ember.js,我无法理解这件事。我已经从这个(图像预览+上传的展示)开始,它正在使用ember-0.9.8.1,我正在尝试让它在中使用ember-1.0.0-rc.6 这是导致问题的相关部分: <script type="text/x-handlebars"> {{#view Ember.View contentBinding="App.myModel"}} {{#view App.PreviewUploadImage name="logo_image" contentBind
ember-0.9.8.1
,我正在尝试让它在中使用ember-1.0.0-rc.6
这是导致问题的相关部分:
<script type="text/x-handlebars">
{{#view Ember.View contentBinding="App.myModel"}}
{{#view App.PreviewUploadImage name="logo_image" contentBinding="content"}}
{{view fileField}}
{{view previewImageView width="200" height="100" srcBinding="content.myModel_src"}}
{{/view}}
{{/view}}
</script>
正如您在控制台中看到的错误:
Assertion failed: Unable to find view at path 'fileField'
Assertion failed: You must pass a view to the #view helper, not fileField ()
Uncaught TypeError: Cannot read property 'proto' of undefined
但是fileField
是一个Ember.TextField
(实际上是一个视图),并且是在使用它的上下文中定义的(视图PreviewUploadImage
)
那么问题出在哪里呢?我猜您遇到的问题是由于
文件字段
视图不是自动创建的,因此查找失败
尝试创建视图,而不是扩展:
App.PreviewUploadImage = Ember.ContainerView.extend({
childViews: ['fileField'],
fileField: Ember.TextField.create({...}),
});
更新
编辑了我的答案后,我忘记了一些实质性的内容,将外部视图设置为ContainerView
,并将fileField
定义为childview
数组中的子视图
希望有帮助。
此
不引用视图,而是引用控制器内容。您必须使用视图
引用视图,如下所示:
<script type="text/x-handlebars">
{{#view Ember.View contentBinding="App.myModel"}}
{{#view App.PreviewUploadImage name="logo_image" contentBinding="content"}}
{{view view.fileField}}
{{view view.previewImageView width="200" height="100" srcBinding="content.myModel_src"}}
{{/view}}
{{/view}}
</script>
{{{#view Ember.view contentBinding=“App.myModel”}
{{{#view App.PreviewUploadImage name=“logo_image”contentBinding=“content”}
{{view.fileField}
{{view view.previewImageView width=“200”height=“100”srcBinding=“content.myModel_src”}
{{/view}
{{/view}
谢谢,但这并不能解决问题:(@gonvaled,对不起,忘了一些重要的东西…现在看一看谢谢,这是正确的:ContainerView
和childview
做这个把戏。create
不是真的需要。这里的工作。ContainerView是一个新概念吗?(我没有设法跟上ember.js的发展)@gonvaled,一点也不,ContainerView
现在已经存在了一段时间。但你是对的,跟上ember.js有时可能是一份全职工作:)谢谢,但这是一个打字错误(我正在尝试几件事)view.fileField确实可以使用,但实际上并不需要(fileField
就足够了)。该解决方案是由直觉像素提供的。
<script type="text/x-handlebars">
{{#view Ember.View contentBinding="App.myModel"}}
{{#view App.PreviewUploadImage name="logo_image" contentBinding="content"}}
{{view view.fileField}}
{{view view.previewImageView width="200" height="100" srcBinding="content.myModel_src"}}
{{/view}}
{{/view}}
</script>