2012-11-14 32 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