任何人都可以解释一下这段代码的错误:
.controller('ArticleCreateCtrl', ['$scope', '$state', '$filter', 'Articles', function ($scope, $state, $filter, Articles) {
$scope.article = {};
$scope.save = function(){
$scope.article.categories = $filter('strcstoarray')($scope.article.categories);
Articles.store($scope.article).then(
function(data) {
$scope.article = data;
return $state.transitionTo('articles');
},
function(err) {
throw new Error(err);
}
);
};
}])
在我运行本地机器时效果很好 在heroku(生产环境因此与所有js minify) 我明白了:
错误:分配给未声明的变量数据
更新(我的服务)
angular.module('mean.system')
.factory('Base',['Restangular', function(Restangular) {
return function(route){
var elements = Restangular.all(route);
return {
one : function (id) {
return Restangular.one(route, id).get();
},
all : function () {
return elements.getList();
},
store : function(data) {
return elements.post(data);
},
copy : function(original) {
return Restangular.copy(original);
},
getElements : function() {
return elements;
}
};
};
}]);
//Articles service used for articles REST endpoint
angular.module('mean.articles').factory('Articles', ['Base', function(Base) {
_.mixin({
'findByCategory': function(collection,category) {
return _.filter(collection, function(item) {
return _.contains(item.categories, category);
});
}
});
function Articles() {
this.findByCategory = function(collection,category){
return _.findByCategory(collection,category);
};
}
return angular.extend(Base('articles'), new Articles());
}]);
答案 0 :(得分:1)
确保您在Gruntfile.js中正确配置了uglify,并使用mangle:false
uglify: {
options: {
mangle: false
},
production: {
files: '<%= assets.js %>'
}
},
答案 1 :(得分:1)
我遇到了同样的问题,因为你必须使用ngmin任务,这会使一些角度库缩小。
在 package.json 之后,在uglify之前添加以下行:
"grunt-ngmin": "0.0.3"
然后更新依赖项:
npm install
然后在 Gruntfile.js 添加 ngmin 任务:
ngmin: {
production: {
files: '<%= assets.js %>'
}
},
请记住添加ngmin任务之前 uglify:
grunt.registerTask('default', ['clean','cssmin', 'ngmin','uglify', 'concurrent']);
下次您在生产模式下运行服务器时,您的代码将起作用。