2012-11-14 35 views
0

這是我第一天,我試圖得到一個簡單的平衡工作,但事實並非如此。這裏有一個小提琴:http://jsfiddle.net/LKktL/有棱角的第一天;我究竟做錯了什麼?

<body ng-app> 
<div ng-controller='EventAddCtrl'> 
    <p>Nothing here {{'yet' + '!'}}</p> 
<div class='first-test' ng-click="say_hello()">angular test to say hello</div> 
</div> 
</body> 

function EventAddCtrl($scope){ 
    $scope.say_hello = function() { 
    alert('hello in there'); 
    } 
}​ 

這顯然不工作,並試圖找出原因。 thx提前

+0

http://pkozlowskios.wordpress.com/2012/08/12/using-jsfiddle-with-angularjs/ –

回答

0

你有一些jsFiddle的設置問題。這裏是工作jsFiddle

你可以試試plunker。它像jsFiddle一樣工作得很好。

1.增加身體標記<body ng-app>

你安排 「沒有包(頭)」

1

有你的提琴兩種錯誤的做法用法。

  1. 不需要選擇onload,選擇no wrap(head)或no wrap(body)都可以。
  2. 不需要放在HTML面板<body>標籤,它已經在那裏,並擴大信息菜單在左側面板中,填補了正文標記<body ng-app>

欲瞭解更多信息,請瀏覽此頁fiddle documentation

+0

thx for info,昨晚睡着 – timpone

2

在您的JSFiddle Angular正在執行onLoad事件期間。打開瀏覽器控制檯,你會發現Angular拋出的以下錯誤:

Error: Argument 'EventAddCtrl' is not a function, got undefined 

你的應用程序未能初始化。

onLoad事件在文檔加載過程結束時被觸發。在DOMContentLoaded事件期間,Angular會對您的應用程序進行初始化,該事件在解析DOM之後觸發,但在之前DOM已準備好並且在文檔被完全加載之前觸發了。換句話說,確保在任何這些事件之前解析並執行庫,方法是將它包含在<head><body>HTML標記之間。一個好的做法是將它放在關閉<body>標籤之前。

正如其他人所說的,使用JSFiddle時,請使用no wrap(head)no wrap(body)

+0

thx解釋 - 非常有幫助 – timpone