我测试了最基本的棱镜。我使用nodejs,angularjs和html。
这是我的档案。的 https://github.com/internial/test 即可。 未发布node_modules b / c它太大了。
在localhost:8080。这是我得到的输出。
{{1 + 64}}
{{main.msg}}
{{this.msg}}
{{msg}}
{{mainController.msg}}
Angular不起作用。但是,当我没有ng-controller和ng-app(初始化为空)时,它可以工作。但是我不能打电话给控制器。我只能做基本的{{1 + 64 }}
。
谁能告诉我我做错了什么?
答案 0 :(得分:0)
您还需要将控制器分配给正确的模块。
所以你的index.html说:
ng-app="firstController"
事实上,你的模块被称之为。
var app = angular.module("firstController", []);
(旁注:我可能会将其重命名为firstApp,因为它是整个应用的名称。)
现在,正如评论中所提到的,将mailController重命名为mainController,它应该可以工作。看一下这个例子:
https://jsbin.com/caqohasoce/edit?html,js,output
编辑:刚看到您正在使用快递来提供此功能。而且你唯一暴露的路线只会提供index.html
- 意味着ngapp.js永远不会到达浏览器:
app.get('/', function( req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
以下是解决此问题的两种方法。您可以使用express.static而不是直接提供文件:
app.use(express.static());
或者,你甚至不需要在这里表达。您可以使用实际的HTTP服务器(如apache或nginx)来提供这些文件,也可以使用类似http-server
节点模块的内容:
npm install http-server
node_modules/.bin/http-server .
它会为您的文件提供服务而不是快递。
此处还有其他事情要做,例如将其全部移动到/ public目录或类似内容中,将服务器模块与客户端分开,但这些与您的问题无关。
答案 1 :(得分:0)
我建议您执行以下操作..
在你的ngapp.js文件中重写它:
def bar
super || Bar.last
end
在你的标记重写中:
var app = angular.module("firstController", []);
app.controller("mainController", function($scope) {
$scope.msg = "Hello from NG controller";
});
提示:由于它是一个应用程序,而不是<!DOCTYPE html>
<html ng-app="firstController">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.8/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.8/angular-route.min.js"></script>
<script src="ngapp.js"></script>
</head>
<body ng-controller="mainController">
{{1 + 64}}
<h3>{{msg}}</h3>
</body>
</html>
将其重命名为ng-app="firstController"
。
检查拼写ng-app="firstApp"
,并在标记中找到(app.controller("mailController")
。