【问题标题】:Angular HotTowel -datacontext is not definedAngular HotTowel -datacontext 未定义
【发布时间】:2023-04-03 14:15:01
【问题描述】:

**

谁能告诉我为什么会得到以下信息?

**

[shell]  Hottowel Angular loaded! null

TypeError: undefined is not a function 在 Object.fn (/Scripts/app/services/directives.js:162:33) 在 Scope.$digest (/Scripts/angular.js:12251:29) 在 Scope.$apply (/Scripts/angular.js:12516:24) 完成后 (/Scripts/angular.js:8204:45) 在 completeRequest (/Scripts/angular.js:8412:7) 在 XMLHttpRequest.xhr.onreadystatechange (/Scripts/angular.js:8351:11) 未定义 [app] [HT 错误] undefined is not a function 目的 ReferenceError:未定义数据上下文 在 getMessageCount (/Scripts/app/dashboard/dashboard.js:29:20) 在激活 (/Scripts/app/dashboard/dashboard.js:23:29) 在新仪表板 (/Scripts/app/dashboard/dashboard.js:20:9) 在调用 (/Scripts/angular.js:3869:17) 在 Object.instantiate (/Scripts/angular.js:3880:23) 在 /Scripts/angular.js:7134:28 在 /cripts/angular.js:6538:34 在 forEach (Scripts/angular.js:330:20) 在 nodeLinkFn (Scripts/angular.js:6525:11) 在compositeLinkFn (/Scripts/angular.js:5986:15) [app] [HT 错误] datacontext 未定义 对象

以下是我的内容

 <!-- 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 未定义?

【问题讨论】:

    标签: angularjs hottowel


    【解决方案1】:

    您没有在dashboard 定义中加载它

    在这里,您正在定义一个控制器,并注入两个依赖项,commondatacontext,这很好:

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

    但是在这里,您将dashboard 函数(控制器定义中的最后一个参数)定义为只有一个参数:

    function dashboard(common)
    

    ....所以你注入的datacontext 实际上被忽略了。您应该将 dashboard 定义更改为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      • 2016-01-14
      • 2012-09-06
      相关资源
      最近更新 更多