2012-02-26 26 views
0

如果有人能夠幫助我解決此問題,我將不勝感激。我遵循在線指南,對Sproutcore來說是非常新的。我創建了一個「HelloWorld」項目並生成了HelloWorld.appController。在appController中,我已經聲明瞭一個名爲sayHello的函數。當我在localhost:4020/hello_world上刷新該網站時,螢火蟲顯示錯誤,我一直在網上尋找這個問題,但沒有找到任何答案。我已經清理了幾次瀏覽器(FF)緩存,沒有運氣.Firebug報告說「sayHello」函數缺少一個「}」,這是不正確的。如果我評論sayHello函數並查詢appController的「greeting」變量,我可以查找它。只要我把sayHello函數放回去,「greeting」變量就從我的視圖中消失,並且螢火蟲抱怨。謝謝你的幫助。Firebug在控制器中顯示錯誤Sproutcore 2

錯誤:缺少}屬性列表 的sayHello後:函數(){ app_co ... 0236609(第21行,第2列)

這裏是AppController的代碼:

// ========================================================================== 
// Project: HelloWorld.appController 
// Copyright: @2012 My Company, Inc. 
// ========================================================================== 
/*globals HelloWorld */ 

/** @class 

(Document Your Controller Here) 

@extends SC.Object 
*/ 
HelloWorld.appController = SC.ObjectController.create(
/** @scope HelloWorld.appController.prototype */ { 

// TODO: Add your own code here. 

greeting: "HEY NOW!!!" 

//FUNCTION SAYHELLO 

sayHello: function(){ 
var currentGreeting = this.get('greeting'); 
var newGreeting = (currentGreeting === 'Hello World!') ? 'I am on SproutCore!' : 'Hello World!' ; 
this.set('greeting', newGreeting); 
    } 
}); 

回答

2

這個錯誤幾乎總是意味着你在定義你的一個屬性後錯過了一個逗號。在這種情況下,它是您的greetings屬性。

只需在行尾添加一個逗號,您應該很好。

另外,一個快速記錄,SproutCore最近經歷了一些變化,「SproutCore 2」分裂成了自己的項目EmberJS。他們都具有很多相同的基礎和功能,因此開始使用它們應該能夠讓你瞭解兩者如何工作,除了TemplateView在Ember中比在SproutCore中更加突出。

+0

我不能非常感謝你幫助我。我花了整整一天的時間試圖查看是什麼導致了這個問題。在閱讀您的快速筆記之後,我不確定是要追求SP2還是EmberJS?我的印象是,SP/SP2是桌面和移動開發的停止框架。你的偏好是什麼?是SP2還是EmberJS?謝謝 – Combustion007 2012-02-26 17:23:59

+0

@ Combustion007這取決於你正在建造什麼類型的應用程序... – hvgotcodes 2012-02-26 20:43:19

+0

我同意hvgotcodes。就我個人而言,我喜歡SC,我會堅持下去。我也對基於SC 1.4的移動開發項目感興趣。 – 2012-02-27 02:16:15