2012-09-01 59 views
2

我有一個ember.js原型,它的運行良好,直到現在。自從我上次部署以來,我一直在獲取Uncaught TypeError錯誤:無法讀取未定義的屬性「哈希」。Ember.js - 未捕獲TypeError:無法讀取未定義的屬性'哈希'

app.js文件

// Application 
Welcome = Ember.Application.create({ 
    ready : function() { 
    } 
}); 

// Model 
Welcome.Ticket = Ember.Object.extend({ 
    id : null, 
    buyerPartyId : null, 
    name : null, 
    priority : null, 
    description : null, 
    comment : null 
}); 

// Controller 
Welcome.ticketsController = Ember.ArrayController.create({ 
    content : [], 

    loadTickets : function() { 
     var self = this; 
     $.getJSON('url here', function(
       data) { 
      for (var i = 0; i < data.serviceRequest.length; i++) { 
       self.pushObject(Welcome.Ticket.create(data.serviceRequest[i])); 
      } 
     }); 
    } 
}); 

的Index.html

<!doctype html> 
<html> 
<head> 
<title>Ticket List</title> 
<link rel="stylesheet" href="css/normalize.css"> 
<script 
    src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script src="js/libs/ember-0.9.5.min.js"></script> 
<script src="js/app.js"></script> 
</head> 
<body> 
    <h1>Ticket List</h1> 
    <script type="text/x-handlebars"> 
    {{#view Ember.Button target="Welcome.ticketsController" action="loadTickets"}} 
     Load Tickets 
    {{/view}} 

    {{#each contentBinding="Welcome.ticketsController" tagName="ul"}} 
     <b>{{content.id}}</b> - {{content.buyerPartyId}}, <i>{{content.name}}</i> 
    {{/each}} 
</script> 
</body> 
</html> 

我相信,我可以俯瞰簡單的東西!任何建議,將不勝感激 !!

這是來自Chrome開發控制檯的錯誤堆棧。

Uncaught TypeError: Cannot read property 'hash' of undefined ember-0.9.5.min.js:13 
(anonymous function) ember-0.9.5.min.js:13 
(anonymous function) 
b.VM.template ember-0.9.5.min.js:9 
Ember.View.Ember.Object.extend.render ember-0.9.5.min.js:12 
Ember.View.Ember.Object.extend.renderToBuffer ember-0.9.5.min.js:12 
Ember.View.Ember.Object.extend.createElement ember-0.9.5.min.js:12 
Ember.View.states.preRender.insertElement ember-0.9.5.min.js:12 
Ember.View.Ember.Object.extend.invokeForState ember-0.9.5.min.js:12 
c ember-0.9.5.min.js:10 
j ember-0.9.5.min.js:10 
f.flush ember-0.9.5.min.js:10 
f.end ember-0.9.5.min.js:10 
Ember.run.end ember-0.9.5.min.js:10 
i ember-0.9.5.min.js:10 
+0

如果您指出哪條線投擲錯誤,可能會有所幫助... – McGarnagle

回答

2

AFAIK,與{{each}},您需要直接提供控制器。喜歡的東西:

{{#each Welcome.ticketController}} 
{{/each}} 

看看這個的jsfiddle http://jsfiddle.net/lifeinafolder/nVr4r/。它不會再犯這個錯誤了。

「加載票」按鈕不會工作,因爲你還沒有一個URL。

Emberjs文檔也有一些使用{{each}}的示例。你應該看看。

此外,你可能想要更新你的emberjs。在餘燼世界中,0.9.5.min相當古老:)

+0

Cool that help !! – mithrandir

相關問題