AngularJS:当我已经声明$scope时,获取$scope不是定义的错误
AngularJS: Getting $scope is not defined error when I already have $scope declared
我一直在尝试几种不同的配置,但是尽管在控制器中定义了AngularJS文件,但我的AngularJS文件不断得到$scope is not defined error
。
我正在尝试让$scope.idStore
和$scope.patientTime
在底部的控制器部分中工作。这些函数从具有特定 ID 的输入框中提取数据。然后将它们存储为patientID
变量。 patientTime
将此 ID 与其他时间戳连接起来,然后生成警报消息。
测试表明我在尝试读取idStore
或patientTime
时出现错误
下面是主要的AngularJS代码:
'use strict';
(function() {
//generate JSON-based list for menu links
var AppCtrl;
AppCtrl = function () {
function AppCtrl($scope) {
$scope.list = [
{
label: 'Main Menu',
icon: 'fa fa-home fa-fw 4x',
link: '#/appLaunch',
move: function() {
console.log("HOME");
}
},
{
label: 'Patient',
icon: 'fa fa-user fa-fw 4x',
link: '#/pCredential',
move: function(){
console.log("PATIENT");
}
},
{
label: 'Technician',
icon: 'fa fa-user-md fa-fw 4x',
link: '#/tLogin',
move: function(){
console.log("TECHNICIAN");
}
},
{
label: 'Administrator',
icon: 'fa fa-cogs fa-fw 4x',
link: '#/aLogin',
move: function(){
console.log("ADMINISTRATOR");
}
}
];
}
return AppCtrl;
}();
// Declare app level module which depends on views and components
angular.module('careApp', [
'ngRoute',
'ngMaterial',
'ngAria',
'ngAnimate',
'ngMaterialDatePicker',
'careApp.appLaunch',
'careApp.pCredential',
'careApp.dialog1',
'careApp.pSurvey',
'careApp.pTheme',
'careApp.pThanks',
'careApp.tLogin',
'careApp.tMain',
'careApp.aLogin'
])
.config(['$routeProvider', function($routeProvider) {
//if given invalid partial, go back to appLaunch.html
$routeProvider.otherwise({redirectTo: '/appLaunch'});
}])
.controller('AppCtrl', ['$scope', AppCtrl]);
//declare empty patientID to be accessed by functions
var patientID = '';
//grab relevant data from input and add it to patientID
$scope.idStore = function() {
var patientFirstInitial = document.getElementById('patientFirstInitial');
var patientLastName = document.getElementById('patientLastName');
var aptDate = document.getElementById('aptDate');
var aptTime = document.getElementById('aptTime');
//store patientID as global variable
patientID = patientFirstInitial + patientLastName + aptDate + aptTime;
console.log('Registered ' + patientID);
}
//on time selection, concat to patientID, then throw alert
$scope.patientTime = function(){
//concats selected theme to patient ID, then sends to database
var patientTheme = document.getElementById('');
patientID += patientTheme;
alert('Patient ' + patientID + ' has been registered.');
}
}());
我的怀疑集中在我如何设置这个AngularJS文件。这是不是做错了?
你在函数中AppCtrl
定义了两次,而且你也被IIFE右括号搞砸了。它不应该在AppCtrl
代码之后。它应该在那里结束。
法典
(function() {
AppCtrl = function($scope) {
//why don't have it simple like this
//inner code will be as is
};
// Declare app level module which depends on views and components
angular.module('careApp', [
//many dependecies
])
.config(['$routeProvider', function($routeProvider) {
//if given invalid partial, go back to appLaunch.html
$routeProvider.otherwise({
redirectTo: '/appLaunch'
});
}])
.controller('AppCtrl', ['$scope', AppCtrl]);
//code as is
})();
发生$scope is undefined
错误,因为您有
AppCtrl = function () {
hich 是 AppCtrl 函数,没有$scope
依赖关系。在该函数中,您要求$scope
值,而无需像function AppCtrl($scope) {
那样在此处注入它
在解释答案的第二部分时,假设您有正确的可变参考。
相关文章:
- 正在获取Angular以检测$scope中的更改
- 获取Div Width,然后更新Scope Variable
- 如何使用get()获取嵌套的Scope属性
- 从Angular Scope中的Array中获取所有对象
- 在 angularjs $scope中获取数据,同时从 django 获取数据
- 如何在回调函数中获取 AngularJS 中 $scope 变量的当前状态
- AngularJS:当我已经声明$scope时,获取$scope不是定义的错误
- AngularJS:$scope.$watch 不会更新从自定义指令$resource获取的值
- 钻取$scope以获取复杂的自动完成DOM中的特定元素
- 无法从$scope获取值
- 从 JSON 获取数据并将此元素添加到变量$scope
- 获取 $scope/ngcontroller 中的元素
- 如何从控制器功能内部获取$scope
- 如何使用 angularjs 从这个$scope中获取值
- 获取$rootScope事件处理程序的$scope引用
- 从AngularJS中的服务获取数据后,如何更新$scope是最好的方法
- 在PageMod Firefox中获取Angular Scope
- 从$http将数据从单独的服务文件获取到$scope中
- 使用angular js中的另一个变量来获取$scope.x1变量
- Angular从ng repeat内的$scope获取动态变量