将Angularjs服务注入控制器

时间:2014-08-21 16:16:42

标签: javascript angularjs

我正在构建相当简单的Angularjs应用程序,其中包括简单的基于js的游戏,主视图和游戏视图。我在这里发布了大部分代码

http://jsfiddle.net/Seasamh/5bqq1bj8/

以下是html模板的代码

home.html

    <span>This is a main page</span>
    <a ng-click="setRoute('game')">Play game</a>

game.html

<div id="timer"></div>
<div class="col-md-6 left">
    <div id="leftNumber"></div>
</div>
<div class="col-md-6 right">
        <div id="rightNumber"></div>
</div>

游戏over.html

<span>Game over!</span>

我在获取游戏的实际代码时遇到问题,尽管计时器启动并运行。游戏代码存储在服务中,我试图在控制器中注入。到目前为止,我失败了。

我还使用jQuery和noConflict()来操作DOM。提前谢谢。

1 个答案:

答案 0 :(得分:1)

使用数组语法时,您没有正确声明控制器:

此:

gameApp.controller('mainController', ['$scope', '$location', 'game', function($scope, game){

应该是:

gameApp.controller('mainController', ['$scope', '$location', 'game', function($scope, $location, game){

数组表示法是这样的,如果javascript缩小,上面的代码将继续工作。列出您要在数组中作为字符串注入的所有内容,然后需要以与函数参数相同的顺序指定它们。

修改

实际上,看起来你的小提琴有一些其他问题。我通常使用plnkr,我不确定你是如何/在哪里加载角度的。修复上述问题后,我得到了关于“gameApp”模块无法使用的错误。

我通过摆弄小提琴来解决这个问题。但接下来的错误是Angular模块“ngRoute”不可用。这是我停下来的地方,b / c我不知道你怎么告诉小提琴手加载ng-route javascript文件。

我已经回答了你问过的问题,希望你的应用现在可以在小提琴之外工作。