Вам также необходимо назначить ваш контроллер правильному модулю.
Так что ваш 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 .
Это будет служить ваши файлы вместо экспресс.
Здесь есть что делать дальше, например, перемещать все в нечто вроде/общедоступного каталога или тому подобное, отделять серверные модули от клиента, но это не относится к вашей проблеме.
У вас есть 'ng-controller =" mainController как основной "и' app.controller ("mailController", ... ', то есть' main' и 'mail'. Исправьте опечатку и она должна работать – dotnetom
it все еще не работает – Internial
Вы пытались использовать $ scope вместо этого в главном контроллере? – Mhand7