尝试按照一些示例,但我得到 app未定义
app.js
(function () {
"use strict";
var app = angular.module("deviceManagement",['angularUtils.directives.dirPagination']);
}());
所以我希望能够使用或附加到" app"
我有一个控制器js文件
(function () {
"use strict";
angular
.module("deviceManagement")
.controller("DeviceListCtrl",
ProductListCtrl);
function ProductListCtrl($http, $scope) {
var vm = this;
vm.devices = [];
deviceList();
function deviceList() {
//..........
}
}
} ());
根据上述规则,我是这样做的
app.filter('deviceStatus', function () {
var deviceStatusLookup = {
1: "New Device",
2: "Activated",
3: "Unactivated"
};
return function (statusId) {
var output = deviceStatusLookup[statusId];
return output;
}
});
页面控制台上的错误
deviceListCtrl.js:73 Uncaught ReferenceError: app is not defined
答案 0 :(得分:3)
检查您是否已包含app.js文件。
另外,我会改变以下内容:
app.filter('deviceStatus', function () {
到此:
angular
.module("deviceManagement")
.filter('deviceStatus', function () {
最好不要使用var app并只是引用模块,例如angular.module( “deviceManagement”)。请参阅此answer。
答案 1 :(得分:0)
在你的情况下,问题是在这里:
(function () {
"use strict";
var app = angular.module("deviceManagement",['angularUtils.directives.dirPagination']);
}());
lambda函数中有app
,它就在那里。
(function (window) {
"use strict";
var app = angular.module("deviceManagement",['angularUtils.directives.dirPagination']);
window.app = app || {};
}(window));
因此,我们在lambda中注入window
元素,以便您可以全局定义app
(window.app = app || {}
)。
注意:请考虑window.app方法不是最佳方法。
可能angular.module("deviceManagement")
语法是最好的方法,可以使代码更加模块化。