詳解AngularJS中module模組的匯入匯出_AngularJS

來源:互聯網
上載者:User

AngularJS是一款來自Google的前端JS架構,它的核心特性有:MVC、雙向資料繫結、指令和語義化標籤、模組化工具、依賴注入、HTML模板,以及對常用工具的封裝,例如$http、$cookies、$location等。

關於AngularJS中module的匯入匯出,在Bob告訴我之前還沒寫過,謝謝Bob在這方面的指導,給到我案例代碼。

在AngularJS實際項目中,我們可能需要把針對某個領域的各個方面放在不同的module中,然後把各個module匯總到該領域的一個檔案中,再由主module調用。就是這樣:

以上,app.mymodule1, app.mymodule2,app.mymodule都是針對某個領域的,比如app.mymodule1中定義directive, app.mymodule2中定義controller, app.mymodule把app.mymodule1和app.mymodule2匯總到一處,然後app這個主module依賴app.mymodule。

檔案結構:

mymodule/
.....helloworld.controller.js <在app.mymodule2中>
.....helloworld.direcitve.js <在app.mymodule1中>
.....index.js <在app.mymodule中>
.....math.js <在一個單獨的module中>

app.js <在app這個module中>

index.html

helloworld.controller.js:var angular = require('angular');module.exports = angular.module('app.mymodule2', []).controller('HWController', ['$scope', function ($scope) { $scope.message = "This is HWController";}]).name; 

以上,通過module.exports匯出module,通過require匯入module。

helloworld.direcitve.js:var angular=require('angular');module.exports = angular.module('app.mymodule1', []).directive('helloWorld', function () { return {  restrict: 'EA',  replace: true,  scope: {   message: "@"  },  template: '<div><h1>Message is {{message}}.</h1><ng-transclude></ng-transclude></div>',  transclude: true }}).name; 

接著,在index.js把pp.mymodule1和app.mymodule2匯總到一處。

var angular = require('angular');var d = require('./helloworld.directive');var c = require('./helloworld.controller');module.exports = angular.module('app.mymodule', [d, c]).name;

在math.js中:

exports = { add: function (x, y) {  return x + y; }, mul: function (x, y) {  return x * y; }}; 

最後,在app.js中引用app.mymodule1:

var angular = require('angular');var mymodule = require('./mymodule');var math = require('./mymodule/math');angular.module('app', [mymodule]) .controller('AppController', ['$scope', function ($scope) {  $scope.message = "hello world";  $scope.result = math.add(1, 2); }]);

以上所述是小編給大家分享的AngularJS中module模組的匯入匯出,希望大家喜歡。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.