[英]Angular HotTowel -datacontext is not defined
** **
** **
[shell] Hottowel Angular loaded! null
TypeError: undefined is not a function at Object.fn (/Scripts/app/services/directives.js:162:33) at Scope.$digest (/Scripts/angular.js:12251:29) at Scope.$apply (/Scripts/angular.js:12516:24) at done (/Scripts/angular.js:8204:45) at completeRequest (/Scripts/angular.js:8412:7) at XMLHttpRequest.xhr.onreadystatechange (/Scripts/angular.js:8351:11) undefined [app] [HT Error] undefined is not a function Object ReferenceError: datacontext is not defined at getMessageCount (/Scripts/app/dashboard/dashboard.js:29:20) at activate (/Scripts/app/dashboard/dashboard.js:23:29) at new dashboard (/Scripts/app/dashboard/dashboard.js:20:9) at invoke (/Scripts/angular.js:3869:17) at Object.instantiate (/Scripts/angular.js:3880:23) at /Scripts/angular.js:7134:28 at /cripts/angular.js:6538:34 at forEach (Scripts/angular.js:330:20) at nodeLinkFn (Scripts/angular.js:6525:11) at compositeLinkFn (/Scripts/angular.js:5986:15) [app] [HT Error] datacontext is not defined Object 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;
});
}
}
})(); })();
Why is datacontext undefined? 为什么未定义datacontext?
You are not loading it in the dashboard
definition 您没有在
dashboard
定义中加载它
Here, you are defining a controller, and injecting two dependencies, common
and datacontext
, which is good: 在这里,您要定义一个控制器,并注入两个依赖项,即
common
和datacontext
,这很好:
angular.module('app').controller(controllerId, ['common', 'datacontext', dashboard]);
But here, you are defining the dashboard
function (the last parameter in the controller definition) to only have one parameter: 但是在这里,您正在定义
dashboard
功能(控制器定义中的最后一个参数),使其仅具有一个参数:
function dashboard(common)
....so that datacontext
that you are injecting is actually being ignored. ....从而实际上忽略了您正在注入的数据
datacontext
。 You should change the dashboard
definition to this: 您应该将
dashboard
定义更改为:
function dashboard(common, datacontext) {
...
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.