我正在关注 RoR 项目上的整数 Angular JS 教程。
在我的控制器 js 文件中,我有以下内容:
抽奖咖啡
# Place all the behaviors and hooks related to the matching controller here.
# All this logic will automatically be available in application.js.
# You can use CoffeeScript in this file: http://coffeescript.org/
@RaffleCtrl = ($scope) ->
$scope.entries = [
{name:"name1"}
{name:"name2"}
{name:"name3"}
{name:"name4"}
]
在我的控制器 html(由rails生成)中我得到了这个:
索引.html.erb
<h1>Raffle</h1>
<div ng-controller="RaffleCtrl">
<form>
<input type="text" ng-model="newEntry.name">
</form>
<ul>
<li ng-repeat="entry in entries">
{{entry.name}}
</li>
</ul>
</div>
所以它应该重复数组条目中的四个名称,但它不起作用:我打开日志,发现此错误:
参数“RaffleCtrl”不是函数,未定义
您必须定义ng-app指令中application.html.erb
:
<html ng-app="Raffler">
...
</html>
Then in raffle.js.coffee
替换这个:
@RaffleCtrl = ($scope) ->
有了这个:
angular.module('Raffler', []).controller "RaffleCtrl", ($scope) ->
您必须设置所需的ng-app
Angular 应用程序中的指令——这将元素指定为根元素。在应用程序布局中的高级/根元素(例如body or html标签。重要提示,您可以指定该指令一次且仅有一次--如果您错误地添加了多个,则应用程序中的第一个名称将用于定义根元素。
添加后ng-app,然后指定一个匹配的根模块使用您在中指定的名称ng-app
。在定义中将数组留空表示您正在定义模块而不是调用它。使用什么名称并不重要,只需确保它是对您的应用程序具有相对描述性的名称,在您的模块中是唯一的,并且为您在 ng-app 中添加的根模块指定的名称完全相同。该模块将直接包含您的应用程序代码,或者依赖于包含它的其他模块。
基本上,您必须给您的申请一个ng-app
属性,指定文档的根元素。然后,您必须使用相同的名称创建 Angular 根模块——在本例中为“Raffler”。
无论如何,这应该是相关的,但 FWIW 我正在使用导轨“4.1.5”和angularjs-rails 宝石 1.4.4。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)