错误:[$ controller:ctrlreg]未注册名为“CreatePortfolioController”的控制器

时间:2017-04-17 06:11:01

标签: javascript angularjs

ng-app添加在html标记中。我只添加了一部分HTML代码。 我正在尝试使用CreatePortfolioController但似乎未定义。我也检查了拼写错误,但似乎没有。我不知道它为什么不起作用。你能帮我调试吗?

App.js

var app = angular.module("UiApp", ["ServiceApp"]);

app.service('sharedProperties', function () {
    var idValue = 'test string value';

    return {
        getId: function () {
            return idValue;
        },
        setId: function (value) {
            idValue = value;
        }
    }
});

app.controller("PortFolioController", function ($scope, GetPortfolios, sharedProperties) {
    $scope.Portfolios = GetPortfolios.query({ pmid: 2 });
    console.log($scope.Portfolios);
    $scope.addOrder = function (id) {
        sharedProperties.setId(id)
    };
});

app.controller("CreatePortfolioController", function ($scope, CreatePortfolio) {
    $scope.create = function (data) {
        CreatePortfolio.save(data);
    };
});

app.controller("OrderController", function ($scope, GetOrders, sharedProperties) {
    $scope.$watch(function () {
        return sharedProperties.getId()
    }, function (newValue, oldValue) {
        if (newValue != oldValue) {
            $scope.item = newValue;
            $scope.Orders = GetOrders.query({ id: item });
        }
    });
});

Service.js

var app = angular.module("ServiceApp", ["ngResource"]);

    app.factory('GetPortfolios', function ($resource) {
        return $resource("http://localhost:61347/api/PortfolioManager/GetPortfolios/");
    });

    app.factory('GetOrders', function ($resource) {
        return $resource("http://localhost:61347/api/PortfolioManager/GetPortfolioOrders/");
    });

    app.factory('CreatePortfolio', function ($resource) {
        return $resource("http://localhost:61347/api/PortfolioManager/CreatePortfolio");
    });

HTML

<div class="panel-body">
                                <div class="form" ng-controller="CreatePortfolioController">
                                    <form class="cmxform form-horizontal " id="signupForm" method="get" ng-submit="create(data)" action="">
                                        <div class="form-group ">
                                            <label for="portfolioname" class="control-label col-lg-3">Portfolio Name</label>
                                            <div class="col-lg-6">
                                                <input class= "form-control" ng-model="data.portfolioName"  name="portfolioname" type="text" required />
                                            </div>
                                        </div>
                                        <div class="form-group ">
                                            <label for="portfoliotype" class="control-label col-lg-3">Portfolio Type</label>
                                            <div class="col-lg-6">
                                                <input class= "form-control" ng-model="data.type"  name="portfoliotype" type="text" required />
                                            </div>
                                        </div>
                                        <div class="form-group ">
                                            <label for="portfoliodesc" class= "control-label col-lg-3">Portfolio Description</label>
                                            <div class="col-lg-6">
                                                <textarea class="form-control " ng-model="data.description"  name="portfoliodesc" rows="3"></textarea>
                                            </div>
                                        </div>                                       
                                        <div class="form-group">
                                            <div class="col-lg-offset-3 col-lg-6">
                                                <button class="btn btn-primary" type="submit">Save <i class="fa fa-check"></i></button><!--Write Save code-->
                                                <button class="btn btn-primary" type="reset">Cancel <i class="fa fa-times"></i></button><!--Write clear text box code-->
                                            </div>
                                        </div>
                                    </form>
                                </div>
                            </div>

导入文件的序列

<script src="~/Scripts/angular.js"></script>
<script src="~/Scripts/angular-resource.js"></script>
<script src="~/AngularScripts/PM/App.js"></script>
<script src="~/AngularScripts/PM/Service.js"></script>

1 个答案:

答案 0 :(得分:0)

请检查所有这些条件:

  1. 您的ng-app包含在HTML页面中的ng-controller之前或 在同一个标​​签中。
  2. 检查控制器的名称,因为它区分大小写。
  3. 确保已在HTML页面中正确加载JS文件。 AngularJS库的JS文件,然后是你的app文件 包含,顺序 - 带有ng-app set的JS文件,js文件 定义服务(如果有的话),定义工厂的js文件(如果有的话), 用于定义控制器的js文件。一定不要错过 包含任何js文件并按正确顺序排列。
  4. 由于我没有在<script>中看到控制器文件,而是在您添加的代码段中。