在 ajax 响应后在出口中呈现视图
Render a view in the outlet after ajax response
在我的主页上,我有一个 oulet watchListView,我只想用单击链接"/watch_lists"后获得的视图替换插座。
这是应用程序布局/模板的代码
<div id='main-outlet'>
{{outlet}}
<div class="watch-list-rght"><a href="/watch_lists"><i class="icon-eye-open"></i></a> </div>
</div>
{{outlet watchListView}}
这是应用程序路由中的代码
this.resource('watchList', { path: '/watch_lists' });
这是监视列表路由器中的代码
Discourse.WatchListRoute = Discourse.Route.extend({
redirect: function() { Discourse.redirectIfLoginRequired(this); },
renderTemplate: function() {
this.render('watch_lists', { into: 'application', outlet: 'watchListView' });
}
});
我只想在应用程序模板中添加在 ajax 调用后创建的视图
谁能指出我错在哪里。
一旦
您进入此路由,您的视图就会加载到出口中,在 ajax 调用填充之前,它只是没有数据。将日志记录放入 renderTemplate 函数中,您将看到这一点。
我会在路由的setupController方法中进行ajax调用,用该调用的结果填充控制器,以便您可以在视图中显示这些结果。有关详细信息,请参阅有关此方法的文档。
在 AJAX 回调中,应使用该调用的结果填充控制器,并在模板中具有指向要显示的数据的把手。当 Ajax 调用返回并填充控制器时,它将自动加载:
setupController:function(controller){
someObj.AjaxCall(function(data){
controller.set('data',data);
}
}
您可以使用 {{controller.data.property}} 或 {{{controller.data.htmlProperty}}} 在监视列表模板中监视控制器属性以呈现 html。
如果这还不够有用,请发布一个 jsfiddle 来说明您当前正在做什么。
相关文章:
- 如何使用javascript从主svg对象动态创建svg视图框
- 正在使用$location.path(.)路由ng视图
- angular.js没有'无法在PhoneGap中处理视图标记
- 如何包含特定于每个视图angularjs的javascript文件
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- Ajax Live搜索发布到Laravel视图
- backbone.js无法渲染视图
- 根据某些条件在视图之间切换
- ng视图外的链接重定向到ng视图内的页面
- 如何在Jquery中发布后将值从视图返回到控制器
- 将日期时间作为 JSON 发送将无法在我的视图中正确显示
- 使用Scala Play Framework视图中的键检索映射值
- FF视图源|脚本高亮显示为红色
- 如何使bxslider仅在移动视图中处于活动状态
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 余烬.js + 车把:渲染 vs 出口 vs 部分 vs 视图 vs 控制
- 在 ajax 响应后在出口中呈现视图
- Ember.js渲染到视图's出口