簡體   English   中英

未定義Angular HotTowel -datacontext

[英]Angular HotTowel -datacontext is not defined

**

誰能告訴我為什么我得到以下內容?

**

[shell]  Hottowel Angular loaded! null

TypeError:undefined不是Scope。$ digest(/Scripts/angular.js:12251:29)的Object.fn(/Scripts/app/services/directives.js:162:33)的函數。 /Scripts/angular.js:12516:24)完成時(/Scripts/angular.js:8204:45)在XMLHttpRequest.xhr.onreadystatechange(/ Scripts / angular)上的completeRequest(/Scripts/angular.js:8412:7)上.js:8351:11)未定義[app] [HT錯誤]未定義不是函數對象ReferenceError:在激活(/ Scripts)時,getMessageCount(/Scripts/app/dashboard/dashboard.js:29:20)未定義datacontext /app/dashboard/dashboard.js:23:29)在Object.instantiate處調用(/Scripts/angular.js:3869:17)在新儀表板(/Scripts/app/dashboard/dashboard.js:20:9) (/Scripts/angular.js:3880:23)在/Scripts/angular.js:7134:28在/cripts/angular.js:6538:34在forEach(腳本/angular.js:330:20)在nodeLinkFn( CompositeLinkFn(/Scripts/angular.js:5986:15)的Scripts / angular.js:6525:11)[app] [HT錯誤]數據上下文未定義對象

以下是我的包含

 <!-- Vendor Scripts -->
<script src="../Scripts/jquery-2.1.1.js"></script>
<script src="../Scripts/angular.js"></script>
<script src="../Scripts/angular-route.js"></script>
<script src="../Scripts/angular-animate.js"></script>
<script src="../Scripts/angular-sanitize.min.js"></script>
<script src="../Scripts/bootstrap.js"></script>
<script src="../Scripts/toastr.min.js"></script>
<script src="../Scripts/ui-bootstrap-0.6.0.js"></script>

<!-- PouchDB -->
<script src="../Scripts/angular-pouchdb.js"></script>

<!-- Bootstrapping -->
<script src="../Scripts/app/app.js"></script>
<script src="../Scripts/app/config.js"></script>
<script src="../Scripts/app/config.exceptionHandler.js"></script>
<script src="../Scripts/app/config.route.js"></script>

    <!--common Modules -->
<script src="../Scripts/app/common/common.js"></script>
<script src="../Scripts/app/common/logger.js"></script>
<script src="../Scripts/app/common/spinner.js"></script>

<!-- common.bootstrap Modules -->
<script src="../Scripts/app/common/bootstrap/bootstrap.dialog.js"></script>


<!-- app -->
<script src="../Scripts/app/dashboard/dashboard.js"></script>
<script src="../Scripts/app/layout/shell.js"></script>
<script src="../Scripts/app/layout/sidebar.js"></script>

<!-- app Services -->
<script src="../Scripts/app/services/datacontext.js"></script>
<script src="../Scripts/app/services/directives.js"></script>

我的儀表板在下面

var controllerId = 'dashboard';
angular.module('app').controller(controllerId, ['common', 'datacontext', dashboard]);

function dashboard(common) {
    var getLogFn = common.logger.getLogFn;
    var log = getLogFn(controllerId);

    var vm = this;
    vm.news = {
        title: 'Hot Towel Angular',
        description: 'Hot Towel Angular is a SPA template for Angular developers.'
    };
    vm.messageCount = 0;
    vm.people = [];
    vm.title = 'Dashboard';

    //Call Active Init
    activate();

    function activate() {
        var promises = [getMessageCount(), getPeople()];
        common.activateController(promises, controllerId)
            .then(function () { log('Activated Dashboard View'); });
    }

    function getMessageCount() {
        return datacontext.getMessageCount().then(function (data) {
            return vm.messageCount = data;
        });

    }

    function getPeople() {
        return datacontext.getPeople().then(function (data) {
            return vm.people = data;
        });

    }
}

})();

為什么未定義datacontext?

您沒有在dashboard定義中加載它

在這里,您要定義一個控制器,並注入兩個依賴項,即commondatacontext ,這很好:

angular.module('app').controller(controllerId, ['common', 'datacontext', dashboard]);

但是在這里,您正在定義dashboard功能(控制器定義中的最后一個參數),使其僅具有一個參數:

function dashboard(common)

....從而實際上忽略了您正在注入的數據datacontext 您應該將dashboard定義更改為:

function dashboard(common, datacontext) {
   ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM