在向模块添加依赖项后,指令不起作用

时间:2015-12-21 11:57:46

标签: angularjs node.js angularjs-directive pug

我正在研究由节点服务器提供服务的角度应用程序,我正在尝试在core.js文件中包含依赖项。一切都运行良好,直到我向模块添加依赖。一旦我向模块添加依赖项,指令就会因某种原因停止工作。更具体地说,我尝试添加的依赖项是btford.socket-io,并随着凉亭一起安装。

我尝试通过括号添加它,如下所示,app.requires也可以在评论中看到。控制台中显示的错误是[$injector:modulerr]

这是我的core.js文件:

var app = angular.module('test', ['btford.socket-io']);
// app.requires.push('btford.socket-io');

app.controller('testController', function ($scope, $http) {
    $scope.test = "This is test.";

    $scope.loadData = function() {
        $http.get('/data').success(function(data) {
            $scope.data = data;
        });
    };

    $scope.loadData();
});

这是layout.jade:

doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
    script(src='http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js')
    script(src='http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js')
    script(src='/socket.io/socket.io.js')
    script(src='javascripts/core.js')
  body(ng-app="test")
    block content

这是index.jade:

extends layout

block content
    div(ng-controller="testController")
        p {{test}} Result should be 15 and is: {{5 + 10}}
        br
        p {{data[0].name}}

在添加依赖项之前,指令显示预期结果:

This is test. Result should be 15 and is: 15
MyName

但是在添加依赖项之后,它们只显示为带有错误[$injector:modulerr]的纯文本:

{{test}} Result should be 15 and is: {{5 + 10}}
{{data[0].name}}

有谁知道为什么会这样,我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

正如评论中所述,向HTML添加<script>标记解决了它。

唯一需要注意的是我必须将app.use(express.static(path.join(__dirname, 'bower_components')));添加到a​​pp.js才能使用想要的路线