我的文件在这里 https://files.fm/u/va89pjm7#_
代码非常简单。为什么我不能在 localhost:8080/mail 中调用 {{mail.msg}},即使我将"/mail"路由为 mail.html?
感谢堆栈溢出为美妙的社区。
下面是代码:
服务器.js
// get the things we need
var express = require('express'),
app = express(),
path = require('path');
app.use(express.static('./')); // default index.html
app.get('*', function(req, res) {
res.sendFile(path.join(__dirname + '/index.html'));
});
app.listen(process.env.PORT || 8080);
包.json
{
"name": "node-api",
"main": "server.js",
"dependencies": {
"bcrypt-nodejs": "0.0.3",
"body-parser": "~1.9.3",
"express": "~4.10.3",
"jsonwebtoken": "^1.2.0",
"mongoose": "~3.8.19",
"morgan": "~1.5.0"
}
}
恩加普.js
angular.module("firstApp", ['ngRouter'])
.controller("mainController", function() {
var vm = this;
vm.msg = "Hello from mainController controller";
})
.controller('mailController', function() {
var vm = this;
vm.msg = "Hello from mailController controller";
});
ng_route.js
angular.module('ngRouter', ['ngRoute'])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/mail', {
templateUrl: "mail.html",
controller: "mailController",
controllerAs: "mail"
});
$locationProvider.html5Mode(true);
});
邮件.html
<h3>Hello {{mail.msg}}</h3>
索引.html
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular-route.js"></script>
<script src="ngapp.js"></script>
<script src="ng_route.js"></script>
</head>
<body ng-app="firstApp">
<section ng-controller="mainController as main">
<p>{{main.msg}}</p>
</section>
<main>
<div ng-view></div>
<ng-view></ng-view>
</main>
</body>
</html>
结果:本地主机:8080/邮件 = 来自主控制器控制器的问候本地主机:8080 = 来自主控制器控制器的问候
尝试以下操作,我有时觉得有必要。
angular.module("firstApp", ['ngRouter']);
.controller("mainController", function() {
var vm = this;
vm.msg = "Hello from mainController controller";
return vm;
})
你需要一条或另一条线,但不是两个
<div ng-view></div>
<ng-view></ng-view>