Javascript Ember.js命名输出错误
指定插座的放置位置是否有限制?我的模板不渲染,当我将Javascript Ember.js命名输出错误,javascript,ember.js,rendering,Javascript,Ember.js,Rendering,指定插座的放置位置是否有限制?我的模板不渲染,当我将指定到属性时,会出现错误。以下是相关代码: 这就是错误: Uncaught TypeError: Cannot call method 'connectOutlet' of undefined 看起来parentView在这里是null:parentView.connectOutlet(options.outlet,view)(第25461行) 我正在将设置为属性,作为出口所在模板的名称。我是否做错了,这是否应该是一个路由名称(我没有此父视图
指定到
属性时,会出现错误。以下是相关代码:
这就是错误:
Uncaught TypeError: Cannot call method 'connectOutlet' of undefined
看起来parentView
在这里是null
:parentView.connectOutlet(options.outlet,view)代码>(第25461行)
我正在将设置为属性,作为出口所在模板的名称。我是否做错了,这是否应该是一个路由名称(我没有此父视图的任何路由)
子视图路径:
App.MapSearchRoute = Ember.Route.extend({
renderTemplate: function() {
this.render({
into: "sidebar",
outlet: "sidebar"
});
}
});
出口在这里:
<ul class="navigation">
<li>
{{#linkTo map.search class="accent-blue"}}
<i class="icon-search icon-white"></i>
{{/linkTo}}
</li>
<li>
{{#linkTo map.overlay class="accent-purple"}}
<i class="icon-th-large icon-white"></i>
{{/linkTo}}
</li>
<li>
{{#linkTo map.contact class="accent-green"}}
<i class="icon-envelope icon-white"></i>
{{/linkTo}}
</li>
</ul>
{{outlet sidebar}}
-
{{{#linkTo map.search class=“accent blue”}
{{/linkTo}
-
{{{#linkTo map.overlay class=“accent purple”}
{{/linkTo}
-
{{{#linkTo map.contact class=“accent green”}
{{/linkTo}
{{outlet sidebar}}
之前的模板在该模板中呈现,该模板在主出口中呈现:
<div id="map"></div>
{{view App.SidebarView}}
{{view App.SidebarView}
查看渲染帮助的好地方是
您可以拥有任意数量的插座。据我所知,你的代码看起来不错。我假设您也定义了mapsearch模板?这就是将渲染到侧栏中的模板
尝试将侧边栏出口弹出到父模板中。由于它没有嵌套在侧边栏模板中的任何位置,因此不会产生视觉上的差异。请确保在渲染模板时更改“转换”标志。让我知道它是如何为您工作的。请您分享一些代码。最有用的是模板和渲染模板的路径。@Gevious我用一些代码更新了我的问题。谢谢我确实有一个mapSearch
模板,但不幸的是它没有呈现。我已经阅读了指南并浏览了API。它就是一动不动。我知道这个模板可以工作,因为我可以通过{{view App.MapSearchView}}
直接渲染它。看起来效果不错。那么,问题是没有与我的中间视图相关联的路由吗?我有MapView>SidebarView>MapOverlayView+MapSearchView+MapContactView
,只有第一个视图和最后三个子视图有路由,但SidebarView
是无路由的。在这种情况下,似乎没有指定父视图。很可能。视图是自生成的,但我注意到有时自生成的对象并不像它们可能的那样可靠。如果你感到高兴,请随意接受答案:)