angular.js - 在angular中定義模組的全域變數有哪些方法?範例程式碼?
滿天的星座
滿天的星座 2017-05-15 16:55:17
0
1
690

例如,

angular.module('xxx',[])
    .value();

再例如,綁定在$rootScope上面。

覺得自己腦子裡對這些有些模糊,想討論這個主題。

https://docs.angularjs.org/api/ng/type/angular.Module
這個頁面的api都怎麼用,我覺得只看文件不是很懂。

滿天的星座
滿天的星座

全部回覆(1)
大家讲道理

1.一般來說,是不建議在$rootScope上面绑定过多的变量,这样一来程序的可维护性就会变差;当然只是不建议,特殊情况特殊处理;比如网站的title标题可能要经常换,所以这个绑定在$rootScope還是不錯的選擇。
2.Angular提供了兩種方法,一種方法就是你說的那個,還有就是下面的:

    (function() {
    'use strict';

    angular
        .module('app')
        .constant('toastr', toastr)
        .constant('moment', moment);
})();

3.一般來說使用valueconstant已經可以了。


1.我看你的情況應該是想在整個應用中使用這個函數,那麼你可以寫在服務中啊,Angular的Service就是為了提供全局公用的方法;上面的使用方法是為了可以使用一些外部的插件,或是配置一些應用的資訊而使用的,我這邊寫了一個例子,你可以看看,傳送門。

2.具體的程式碼可以看下面:

引入文件的順序

    <script src="../lib/angular.js"></script>
    <script src="module.js"></script>
    <script src="app.js"></script>

index.html

    <body ng-app="MyApp">
        <h1>constant</h1>
        <p ng-controller="MyController as vm">
            <p>
                {{vm.test}}
            </p>
            <p>{{vm.my_key}}</p>
        </p>
    </body>

module.js

    (function(window){
    // ..
    // exports

    var Test = {
        hello: function(){
            console.log('hello');
        }
    };

    window.Test = Test;

})(window);

app.js

    (function(){

    angular.module('MyApp', [])
        .constant('Test', Test)
        .constant('MyKey', 'q123nasbd12y38basd237y')
        .controller('MyController', MyController)
        .service('Service', Service);


    MyController.$inject = ['Test', 'Service', 'MyKey'];
    Service.$inject = [];


    function Service(){
        var service = {
            info: info
        };

        return service;

        function info(){
            return 'info';
        }
    }

    function MyController(Test, Service, MyKey){
        var vm = this;
        vm.test = Service.info();
        vm.my_key = MyKey;
        Test.hello();
    }
})();
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板