Мой контроллер мешает моей UI-маршрутизации

0

У меня был рабочий прототип представлений состояний с жестко закодированными значениями, но когда я попытался включить контроллер, он нарушил ссылки ui-sref, и они, похоже, не указывают на что-либо. Я могу удалить атрибут ng-controller, и они снова работают, но отобразится просто отлично.

Я также попытался подключить ng-controller к div в шаблоне, предварительно отказавшись от контроллера в index.html, и хотя это не нарушает связь, я не могу заставить какие-либо выражения в шаблоне работать, и наличие контроллера будет субоптимальным для целей моего приложения, если я смогу его избежать.

Какие ограничения контроллеров и взглядов я не понимаю?

index.html фрагмент

<div class="main" ng-controller="MainCtrl">
    <a ui-sref="StateA">AAAAA</a>
    <div ui-view></div>
</div>

app.js

var app = angular.module('app', ['ui.router']);

app.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('StateA', {
            url: "/a",
            templateUrl: "views/a.html",
            controller: "MainCtrl"
        })
});

MainCtrl.js

app.controller("MainCtrl", [$scope, function($scope, paramGroups) {//empty controller//}]);
Теги:

1 ответ

1

Помимо некоторых синтаксических ошибок, которые возникают у вас, основная проблема заключается в понимании того, как работает ui-router.

Когда вы определяете что-то вроде:

.state('StateA', {
            url: "/a",
            templateUrl: "views/a.html",
            controller: "MainCtrl"
        })

Это означает, что при a.html на маршрут /a частичный a.html который будет отображаться в вашем ui-view, получит область для MainCtrl.

Там нет точки, определяющей ng-controller='MainCtrl' для элемента, который является родительским элементом ui-view потому что ui-view автоматически получит область действия MainCtrl при MainCtrl маршрута.

Маршрут прерывается, когда вы объявляете этот ng-controller потому что вы пытаетесь вставить один и тот же контроллер внутри себя.

Ещё вопросы

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