angular.js - angular + es6 + webpack遇到的問題?
問題描述
1、代碼如下:
//app.jsimport angular from 'angular';import uiRouter from 'angular-ui-router';import routing from './app.config';import HomeController from './controllers/home.controller';let app = angular.module(’app’, [uiRouter]);app.config(routing) .controller(’HomeController’, HomeController)
2、home.controller.js代碼如下:
class HomeController{ constructor($scope){console.info(’為什么這里運行了兩次?’); }}HomeController.$inject = [’$scope’];export default HomeController;
3、app.config.js代碼如下:
routing.$inject = [’$stateProvider’, ’$urlRouterProvider’, ’$locationProvider’];export default function routing($stateProvider, $urlRouterProvider, $locationProvider){ $urlRouterProvider.otherwise(’/home’); $stateProvider.state(’home’, { url: ’/home’, templateUrl: require(’../views/home.html’), controller: ’HomeController’, title: ’社區綜合受理平臺’}).state(’record’, { url: ’/record’, templateUrl: ’views/record.html’, controller: ’RecordController’, title: ’社區服務綜合受理記錄’}).state(’guide’, { url: ’/guide’, templateUrl: ’views/guide.html’, title: ’社區受理服務事項’}).state(’proof’, { url: ’/proof’, templateUrl: ’views/proof.html’, controller: ’ProofController’, title: ’居住證明’}).state(’poor’, { url: ’/poor’, templateUrl: ’views/poor.html’, controller: ’PoorController’, title: ’就業困難人員待定’})};
4、html如下:
<!DOCTYPE html><html xmlns:ng='http://angularjs.org' lang='en' ng-app='app'><head> <meta charset='UTF-8'> <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/> <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'/> <title ng-bind='title'></title></head><body ng-controller='MainController' ui-view></body></html>
5、home.html:
<p id='root'> <p class='head clearfix'><ul class='title clearfix'> <li><h3 ng-bind='title'></h3> </li></ul> </p> <p class='content'><p ng-controller='HomeController'> 這個是模板?。?!</p> </p></p>
6、問題:為什么constrcutor()運行了2次?
問題解答
回答1:能看你的路由配置和html片段頁面嗎?一般情況是路由里配置了controller,在路由html片段里又聲明了ng-controller。
------ 分割線 -----很明顯嗎!你既在路由里配置了HomeController,又在home.html聲明了ng-controller='HomeController' 當然會執行兩遍啦!
相關文章:
