发表于: 2017-06-03 18:29:02
1 1093
今天完成的事情;
最新职位静态页面及轮播图编写,自适应。angular路由配置的相关理解。
明天的计划:
明天武汉集体出游,哈哈哈。晚上听下小课堂,处理小课堂,简书等。
遇到的问题:
1 在进行懒加载时,组件,指令等为什么这么挂载:
// 将Angular的组件,指令等等的注册接口挂到app对象上,可以在应用程序启动之后任意可以添加功能
function provider($provide, $compileProvider, $controllerProvider, $filterProvider) {
app.controller = $controllerProvider.register;
app.directive = $compileProvider.directive;
app.filter = $filterProvider.register;
app.factory = $provide.factory;
app.service = $provide.service;
app.constant = $provide.constant;
app.value = $provide.value
}
解答:
一般来说我们想注册controller是过这种方式的:
angular.module('app', [])
.controller('ACtrl', function ($scope) {
$scope.ctrl = 'A Controller';
});
但是这个时候ACtrl还没有注册到Angular的内部,我们无法使用,只有程序启动后,Angular才会调用$controllerProvider.register帮我们注册到Angular内部,上面的代码最终会被这样调用:
$controllerProvider.register('ACtrl', function ($scope) {
$scope.ctrl = 'A Controller';
});
将Angular的组件,指令等等的注册接口挂到app对象上。这样做有什么用呢?可以在应用程序启动之后任然可以添加功能:
var app = angular.module('app', [])
.controller('ACtrl', function ($scope) {
$scope.ctrl = 'A Controller';
});
程序启动之后我们在添加BCtrl:
app.controller('BCtrl', function ($scope) {
$scope.ctrl = 'B Controller';
});
这个时候BCtrl是没有办法使用的,应用程序都启动完毕了,不会在把BCtrl注册到Angular内部了。但是换成这种方式就不一样了,BCtrl依旧可以注册到Angular内部:
var app;
angular.module('app')
.config(function ($controllerProvider, $compileProvider, $filterProvider, $provide) {
app.controller = $controllerProvider.register;
})
//after bootstrap
app.controller('BCtrl', function ($scope) {
$scope.ctrl = 'B Controller';
});
收获:
懒加载遇到angular路由配置的相关理解。
评论