gpt4 book ai didi

javascript - 断言失败 : The value that #each loops over must be an Array. 你通过了 [object Object]

转载 作者:行者123 更新时间:2023-11-30 17:37:49 27 4
gpt4 key购买 nike

我正在尝试在按下按钮时在运行时更改模板的模型。为了更改名为“example”的模板模型,按下按钮时会调用 changeModel 操作。此方法发出 Ajax 请求并从后端获取一些数据。现在的问题是应用程序转换到示例模板,但新数据未显示在模板中。我验证了数据是从服务器发送的。当我将完全相同的数据放入变量并尝试将其作为模型加载时,它起作用了。可能是什么问题?问题是因为在转换到新页面之前 Ajax 请求没有得到解决,我需要以某种方式使用 promise 吗?还是发送的数据的数据类型不同?如果是这样,我怎样才能将它转换成一个数组。这个问题在某种程度上与我几天前问的另一个问题有关:Rendering a template and invoking model hook in Ember.js .你可以看看我正在使用的代码。

changeModel: function(data) {
var url = "/ChangeModel";
var newModel= Ember.$.getJSON(url).then(function(data) {
return data;
});
var self = this;
this.transitionTo('example').then(function(){
self.controllerFor('example').set('model', newModel);
});
}

最佳答案

变量“newModel”似乎是一个 promise 。

试试这个:替换你的代码:

self.controllerFor('example').set('model', newModel);

newModel.then(
function(data) {
self.controllerFor('example').set('model', data);
});

关于javascript - 断言失败 : The value that #each loops over must be an Array. 你通过了 [object Object],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21691927/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com