我正在为我的项目使用角度ui bootstrap。模态工作正常但是当我使用grunt构建命令时,模态停止出现。任何人都可以帮助我。我已经得到了类似的问题angular-ui-bootstrap causes unknown provider error when minified但是到目前为止还没有找到令人满意的答案。谁能帮我 ? Thanx提前.. 我的bower.json文件如下所示:
{
"name": "client",
"version": "0.0.0",
"dependencies": {
"angular": "1.2.6",
"json3": "~3.2.6",
"es5-shim": "~2.1.0",
"angular-resource": "1.2.6",
"angular-sanitize": "1.2.6",
"angular-route": "1.2.6",
"angular-bootstrap": "~0.10.0",
"bootstrap": "~3.1.1",
"underscore": "~1.6.0",
"d3": "~3.4.1",
"angular-touch": "~1.2.16",
"deepcopy": "~0.3.2"
},
"devDependencies": {
"angular-mocks": "1.2.6",
"angular-scenario": "1.2.6"
}
}
答案 0 :(得分:4)
我也遇到过这个问题。我发现问题是由缩小过程引起的,因为它重命名了函数'因为角度无法找到提供者" a",因此模态停止正常工作。
修复非常简单。只需使用数组而不是函数声明模态控制器。
示例:强>
var modal = $modal.open({
templateUrl: 'partials/modal.html',
controller: MyModalCtrl
});
var MyModalCtrl = [
'$scope',
'$modalInstance',
function($scope, $modalInstance){
...
}
];
如果您缩小代码,强烈建议使用数组声明语法。
希望这可以解决您的问题。
答案 1 :(得分:1)
我开始知道错误的原因。它的笨拙缩小任务正在缩小角度服务变量,然后角度无法找到它们。只需设置" mangle" uglify中的false解决了问题,但是当mangle设置为true时,与使用grunt构建的普通文件相比,它也增加了文件大小(默认)。
但是我想再次将mangle设置为true。如果有人已经通过问题解决了它,那么请在下面的答案中发布。谢谢.......
答案 2 :(得分:1)
您只需要修改一下gruntfile。只需在jshint部分中将mingle写成false即可。它将起作用。
答案 3 :(得分:0)
您可能希望查看名为“bower.json”的文件并查看是否有类似
的行"angular-bootstrap": "~0.11.0"
同样在index.html中,您应该查看是否有
<!-- build:js scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<!-- endbower -->
<!-- endbuild -->
希望这有帮助。