我刚刚开始使用AngularJs。我试图实现登录指令。但是我没有看到输出?我的控制台中没有错误。
我的申请结构:
(index.html
不可见)
login.directive.js :
(function() {
'use strict';
angular
.module('lnjapp.login',[])
.directive('login', login);
function login() {
var directive = {
template: '<p>test</p>',
//restrict: 'E',
Controller: LoginController,
controllerAs: 'vm'
};
return directive;
}
})();
app.js :
(function () {
'use strict';
angular.module('lnjapp', ['ngRoute', 'ngCookies', 'angular.filter','lnjapp.login','lnjapp.config'])
.constant('GLOBALS', {
url:'http://domain.dev/api/v1/'
});
$(document).ready(function() {
$.material.init();
});
})();
应用/页/ login.html的:
<login></login>
- 的修改 -
login.controller.js :
(function() {
'use strict';
angular.module('lnjapp.login',[])
.controller('LoginController', LoginController);
function LoginController()
{}
})();
路由config.js :
angular
.module('lnjapp.config',[])
.config(config);
function config($routeProvider) {
$routeProvider
.when('/', {
templateUrl: '/app/pages/login.html'
});
}
我在这里做错了什么?
答案 0 :(得分:2)
您<{1}}两次创建,一次在lnjapp.login
,再次在login.directive.js
。第二次创建模块时,它会覆盖第一个模块,并且将无法再访问在第一个文件中创建的任何内容。
您应始终只创建一次模块,并获取已创建的模块以在所有其他情况下添加其他功能。
设置(创建):login.controller.js
获取(消费):angular.module('lnjapp.login',[])
有关更多信息和其他最佳做法,请参阅John Papa的优秀Angular Style Guide。