我有一个AngularJS网络应用程序。该应用程序运行良好,无需任何缩小。但是当我以咕unt咕min的表情缩小时,像这样:
uglify: {
options: {
report: 'min',
mangle: false
},
dist: {
files: {'app/dist/js/yanpy.min.js': [Many scripts, 'app/js/controllers/shopping-cart.js', more scripts]
我收到下一个错误:
ReferenceError: shoppingCart is not defined
at Object.$get (yanpy.min.js:9)
at Object.invoke (yanpy-libs-1.min.js:1)
at yanpy-libs-1.min.js:1
at getService (yanpy-libs-1.min.js:1)
at invoke (yanpy-libs-1.min.js:1)
at Object.instantiate (yanpy-libs-1.min.js:1)
at yanpy-libs-1.min.js:2
at yanpy-libs-1.min.js:2
at forEach (yanpy-libs-1.min.js:1)
at nodeLinkFn (yanpy-libs-1.min.js:2)
grunt文件中包含的shoppingCart脚本“ shopping-cart.js”用于缩小。该文件如下所示:
function shoppingCart(cartName) {
this.cartName = cartName;
this.clearCart = false;
this.checkoutParameters = {};
this.items = [];
// load items from local storage when initializing
this.loadItems();
}
// load items from local storage
shoppingCart.prototype.loadItems = function () {
// Do whatever
}
发生了什么事?当我缩小时为什么不工作而没有缩小时又为什么工作呢?
UPDATE_1:
根据重复的标记,请注意,购物车不是有角度的模块,而只是一个JavaScript脚本。因此,不确定原始引用文章中提供的方法是否是真正的答案。
UPDATE_2:根据@UncleDave注释。我在引用shoppingCart的地方复制了两部分代码。
.directive('adminOfferExtras', function(Extra, ExtraService, LocationService, OfferService, DataService) {
function link(scope, element, attrs) {
var boatId = parseInt(scope.boat.id);
var extrasCart = new shoppingCart("OfferBoatExtrasCart_" + boatId);
和
.factory("DataService", function () {
// create shopping cart
var myCart = new shoppingCart("Store");
return {
cart: myCart
};
})
请注意,看到购物篮引用的唯一其他地方是我已经复制的shopping-cart.js文件。也许这个呼叫应该标上var?
shoppingCart.prototype.loadItems = function () {
// Do whatever
}