有角度的第一天;我究竟做错了什么?

时间:2012-11-14 06:00:01

标签: javascript angularjs

这是我的第一天,我正在尝试简单的工作,但事实并非如此。这是一个小提琴: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提前

3 个答案:

答案 0 :(得分:2)

在你的JSFiddle中,Angular正在onLoad事件中执行。打开浏览器控制台,您会发现Angular抛出以下错误

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

您的应用无法初始化。

在文档加载过程结束时触发onLoad事件。 Angular在DOMContentLoaded事件期间初始化您的应用程序,该事件在解析DOM之后触发,但之前 DOM准备就绪并且在文档完全加载之前触发。换句话说,确保在任何这些事件之前解析并执行库,方法是在<head><body> HTML标记之间包含它。一个好的做法是将它放在收尾<body>标记之前。

正如其他人所提到的,当使用JSFiddle时,请使用no wrap(head)no wrap(body)

答案 1 :(得分:1)

你的小提琴中有两个错误的用法。

  1. 不需要选择onload,选择没有换行(head)或没有换行(body)都可以。
  2. 不需要在已经存在的html面板中放置<body>标记,并展开左侧面板中的信息菜单,填写正文标记 <body ng-app>
  3. 有关详细信息,请参阅此页面fiddle documentation

答案 2 :(得分:0)

jsFiddle存在一些设置问题。这是工作jsFiddle

您可以尝试plunker。它像jsFiddle一样非常好。

1.添加Body标签<body ng-app>

2.pick“no wrap(head)”