Angular学习笔记-问题列表(2016.4.7)
1、控制器中注入服务时,出问题,当前pageInit这个页面无法加载,页面无报错信息。
var homepage = angular.module('homepage'); homepage.controller('pageInit', function($scope, $state,localLibraryService) { alert(333333) localLibraryService.getZhaopin(); /** //直接运行下面这段代码没有问题,但是通过注入服务器的形式时,直接出问题,但是页面没有错误信息。 $http.get('data/zhaopin.json').success(function(data){ // $scope.zhaopin = data; alert(data.showObj); $scope.infoList = data.showObj; }).error(function(){ alert("an unexpected error ocurred!"); }); */ }) homepage.service('localLibraryService', function($scope,$http){ this.getZhaopin = function(){ $http.get('data/zhaopin.json').success(function(data){ alert(data.showObj); $scope.infoList = data.showObj; }).error(function(){ alert("an unexpected error ocurred!"); }); } });
后来将服务内的内容全部删除,只剩一个alert,问题依旧。直到将服务改成这样以后,才没有问题。
homepage.service('localLibraryService', function(){ alert(123); });
后知后觉,问度娘方才知晓,原来$scope不能注入到服务中。
百度知道里的答案:
你可以注入$rootScope,$scope是不行的。只能在控制器里面才可以,factory是一个服务,你可以把他看做是一个全局变量,他是不对dom操作的,所以不能注入$scope
2、打开页面时报注入错误“Error: [$injector:modulerr]......”
作为初学者来说,被这个错误伤透了脑筋。尤其,我是拷贝了一个完整的项目,在该项目上断断续续地进行修改、调试熟悉AngularJs。遇到这样的问题多了,慢慢的也总结出了一点点经验。其实,这个问题主要还是粗心大意导致的。(以我在玩的项目为例)
1)检查index.html中是否有引入对应的JS文件。(index.html为启动项目时默认打开的页面)
<!-- *************加载登录模块*********** --> <script type="text/javascript"src="app/js/ngapp/app-login/app.login.module.js"></script> <script type="text/javascript"src="app/js/ngapp/app-login/app.login.router.js"></script> <script type="text/javascript"src="app/js/ngapp/app-login/app.login.controller.js"></script>
2)检查core.module.js中是否已经将相应module注入(该js文件为APP的核心模块,需要将其他功能模块注入到里面)
angular.module('app.core', ['ionic','ui.router',
'ngCordova',
//***angularjs video
"com.2fdevs.videogular",
"com.2fdevs.videogular.plugins.controls",
"com.2fdevs.videogular.plugins.overlayplay",
"com.2fdevs.videogular.plugins.poster",
//加载系统模块
"app.sys.directive",
"app.sys.service",
"app.homepage", //系统首页模块
]);
3)检查router.js文件中的参数配置是否准确无误。(一个APP中,路由配置的状态是唯一的,否则会报注入错误。)
angular.module('app.homepage') .config(function($stateProvider, $urlRouterProvider) { //配置首页启动时的加载路由模式 $stateProvider //登录->首页 .state('homepage', { url: '/homepage', templateUrl: 'app/templates/homepage/homepage.html', controller: 'app.homepage.control.HomePageInit as hpinit', }) })
4)检查control.js文件中的module名称是否正确,控制器的名称是否一致。
var homepage = angular.module('app.homepage'); homepage.controller('app.homepage.control.HomePageInit', function($scope, $state,$ionicHistory,$http) { //控制器内容 })
----------------------------------------------------------------------------
我的小鱼你醒了,
还认识早晨吗?
昨夜你曾经说,
愿夜幕永不开启。
你的香腮边轻轻滑落的,
是你的泪,还是我的泪?
初吻吻别的那个季节,
不是已经哭过了吗?
我的指尖还记忆着,
你慌乱的心跳。
温柔的体香里,
那一缕长发飘飘。