ng-controller

时间:2015-06-30 10:08:45

标签: angularjs asp.net-mvc-4 ng-controller

我在_Layout页面中有一个ng-controller。

  <div ng-controller="LayoutController">
left content....
    @RenderBody
right content..

在布局中使用角度模块和ajax(该部分有效)

  <script type="text/javascript">
    var module_ = angular.module("myapp", []);
    var controller_ = module_.controller("layoutController", function ($scope) {
        $.ajax({
            type: "POST",
            url: "Home/GetMenu",
            success: function (result) {
                $.each(result, function (i, ix) {
                    result[i].ID = i + 1;
                });
                $scope.TopCharactersModel = result;
                $scope.$apply();
            },
            complete: function () {

            }
        })

然后我想在Index.html中使用另一个Ng-Controller,它来自这个布局页面。 Javascript代码在此方面不起作用,并且chrome调试器显示此错误 警告:尝试多次加载角度。

    <div ng-controller="IndexController">
     <div class="panel-group" id="accordion" ng-repeat="arr_ in newsArr">
 </div>
</div>



 <script>
        var module = angular.module("myapp", []);
        var myController1 = module_.controller("IndexController", function ($scope) {

            $.ajax({
                url: "Home/GetNews",
                type: "POST",
                success: function (result) {
                    $scope.newsArr = result;
                    //  $scope.$digest();
                    $scope.$apply()
                },
                complete: function () {
                }
            });
        });

    </script>

2 个答案:

答案 0 :(得分:1)

对于第二个控制器试试这个。

<script>
var module = angular.module("myapp", []);
var myController1 = module.controller("IndexController", function ($scope) {
 $.ajax({
            url: "Home/GetNews",
            type: "POST",
            success: function (result) {
                $scope.newsArr = result;
                //  $scope.$digest();
                $scope.$apply()
            },
            complete: function () {
            }
        });
    });
</script>

答案 1 :(得分:0)

假设您在同一个应用程序中,并且您没有使用多个spa创建某种混合应用程序......您实际上正在重新声明模块:myapp。如果您需要对myapp模块的引用,请从angular.module("myapp", []);

中删除[]
  

创建与检索请注意使用angular.module(&#39; myModule&#39;,   [])将创建模块myModule并覆盖任何现有模块   名为myModule。使用angular.module(&#39; myModule&#39;)来检索现有的   模块。

粘贴自module documentation