我有一個很大的問題與燼。如果我導航到某處,我有時會收到錯誤Cannot set property 'type' of null
,並且視圖不會呈現。錯誤是在jQuery中引發的,而不是在Ember中。Ember - 無法設置null的屬性'type'
我從來沒有在我的應用程序中設置something.type
。我不知道錯誤可能是什麼。的路由+控制器+查看示例(不要忘了,它不會發生的每一次。)
路由:this.route("channels", {path: "/channels/:only"});
路線:
App.ChannelsRoute = Ember.Route.extend({
model: function(params) {
var controller = this.controllerFor("channels");
controller.set("only", params.only);
if (!controller.get("hasContent")) {
return controller.updateContent();
}
}
});
控制器:
App.ChannelsController = Ember.ArrayController.extend({
sortProperties: ["position"],
sortAscending: true,
hasContent: function() {
return this.get("content").length > 0;
}.property("@each"),
channels_category: function() {
return this.get("only");
}.property("only"),
filteredContent: function() {
var filterType = "group";
var filterID = 1;
switch(this.get("only")) {
case "primary": filterType = "group"; filterID = 1; break;
case "secondary": filterType = "group"; filterID = 2; break;
case "regional": filterType = "group"; filterID = 3; break;
case "hd": filterType = "hd"; filterID = true; break;
default: filterType = "group"; filterID = 1; break;
}
return this.filterProperty(filterType, filterID);
}.property("@each", "only"),
updateContent: function() {
return $.getJSON(getAPIUrl("channels.json")).then(function(data){
var channels = [];
$.each(data.channels, function() {
var channel = App.Channel.create({
id: this.id,
name: this.name,
group: this.group,
hd: this.hd,
position: this.position,
recordable: this.recordable
});
channels.pushObject(channel);
});
return channels;
});
}
});
其發生在很多控制器中。我希望有人知道一個解決方案。
感謝您的回答,是的,我會在星期一進行測試,並給出您的反饋! ;) –
嗨,對於遲到的答案抱歉。我試了一下,如果我改變了路線,它的工作。但是如果我在這條路線上重新加載頁面,那麼應用程序永遠在裝載路徑中搜索。控制檯輸出爲空。我認爲加載路線預計將在任何內容後返回。我不確定。 *編輯:*如果我添加'return [];'在updateContent結束時,它再次加載,但內容當然是空的。 –