角度UI模态在grunt构建后不出现

时间:2014-05-26 10:28:52

标签: angularjs modal-dialog

我正在为我的项目使用角度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"
     }
   }

4 个答案:

答案 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 -->

希望这有帮助。