angular.js - angular + es6 + webpack遇到的问题?

查看:146
本文介绍了angular.js - angular + es6 + webpack遇到的问题?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1、代码如下:

//app.js

import 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" id="ng-app" 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:

<div id="root">
    <div class="head clearfix">
        <ul class="title clearfix">
            <li>
                <h3 ng-bind="title"></h3>
            </li>
        </ul>
    </div>
    <div class="content">
        <div class="content-wrap clearfix index-content" ng-controller="HomeController">
            这个是模板!!!
        </div>
    </div>
</div>

6、问题:为什么constrcutor()运行了2次?

解决方案

能看你的路由配置和html片段页面吗?
一般情况是路由里配置了controller,在路由html片段里又声明了ng-controller。

------ 分割线 -----
很明显吗!你既在路由里配置了HomeController,又在home.html声明了ng-controller="HomeController" 当然会执行两遍啦!

这篇关于angular.js - angular + es6 + webpack遇到的问题?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆