angularjs of-controller внутри-контроллера

0

У меня есть ng-контроллер на странице _Layout, как это.

  <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 () {

            }
        })

Затем я хочу использовать другой Ng-Controller внутри Index.html, который получен из этой страницы макета. Javascript-код не работает на этой стороне, и хром-отладчик показывает эту ошибку. ПРЕДУПРЕЖДЕНИЕ. Пытался загружать углы более одного раза.

    <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>
Теги:
asp.net-mvc-4
ng-controller

2 ответа

0
Лучший ответ

Предполагая, что вы находитесь в одном приложении, и вы не создаете какое-то гибридное приложение с несколькими спа-салонами... вы фактически обновляете модуль: myapp. Если вам нужна ссылка на модуль myapp, удалите [] из angular.module("myapp", []);

Создание и поиск. Остерегайтесь того, что с помощью angular.module('myModule', []) создаст модуль myModule и перезапишет любой существующий модуль с именем myModule. Используйте метод angular.module('myModule') для извлечения существующего модуля.

Вставка из документации модуля.

  • 0
    спасибо за совет, я это исправлю. но это не решение моей проблемы
  • 0
    Вы использовали ng-app="myApp" несколько раз?
Показать ещё 3 комментария
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>
  • 0
    Я сделал но ничего не изменилось
  • 0
    Во втором контроллере имя переменной для углового модуля не совпадает с тем, которое вы использовали для определения контроллера. Попробуйте исправить это.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню