【问题标题】:Ember render child templateEmber 渲染子模板
【发布时间】:2015-10-16 11:49:38
【问题描述】:

我正在尝试根据在列表视图(父/子视图)上单击的内容来呈现详细信息视图。 所以我有如下嵌套路由;

this.route('my-list', function() {
    this.route('my-details', {
        path: '/details'
    });
});

我的孩子/详细信息路线如下所示

export default Ember.Route.extend({
model: function(params){
    var detailsUrl = "/myApp/json/" + params.myCode + "/details";
    var detailsRequest = new Ember.RSVP.Promise(function(resolve, reject) {
        Ember.$.ajax({
            url: detailsUrl,
            type: "POST",
            data: JSON.stringify({
                'id': params.Id
            }),
            contentType: 'application/json;charset=utf-8',
            dataType: 'json',
            success: function(response) {
                resolve(response);
            },
            error: function(reason) {
              reject(reason);
            }
        });
    });
    detailsRequest.then(function(response) {
        return response; // I do get the correct response here
    }, function(error) {
    });
},
setupController: function(controller, model) {
    debugger;
    controller.set('model', model);
}
});

我的孩子/细节控制器如下所示

export default Ember.Controller.extend({
    queryParams: ['myCode','Id'],
    productCode: null
});

我的子模板如下; (我的父/列表模板中有一个 {{outlet}})

<p>Child details </p>
someId : {{model.someId}}

虽然我能够进行 AJAX 调用 "/myApp/json/" + params.myCode + "/details" 并获得响应,它没有被渲染到子模板

我注意到 setupController 没有被调用。是否必须手动调用或自动调用(请记住我使用的是嵌套视图)

【问题讨论】:

  • thx..但是当你说在 detailsRequest 之前提供“reutrn”时我无法理解

标签: javascript ember.js ember-data


【解决方案1】:

我看到的第一个错误是您将结果返回到 promise 函数而不是模型

export default Ember.Route.extend({

detailsRequest.then(function(response) {
    return response; // I do get the correct response here
}, function(error) {
});

正确的方式应该是

return detailsRequest.then(function(response) {
        return response; // I do get the correct response here
    }, function(error) {

【讨论】:

  • 让我们解决这个问题,然后继续,如果问题没有得到解决。 =)
  • Thx..我现在看到 setupController 被调用并且模型设置了正确的值...但是模板仍然没有 rdnering...我需要做一些特别的事情来渲染它吗?
  • 嗯.. 不能真正说出问题所在。将您的 ajax 请求结果发布到问题..
  • @testndtv 你为什么使用视图?它们已从 Ember 中删除。
  • 我没有使用视图(这只是一个解释我在这里使用的术语)
猜你喜欢
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
相关资源
最近更新 更多