Изменение модели не отражается в видимости в angularjs

0

У меня есть главная страница индекса, в которой я изначально скрываю нижний колонтитул. Но я хочу отобразить его, когда какой-либо элемент щелкнут в каком-либо дочернем представлении. Я вижу, что в журналах модель меняется, но ее не отражается на представлении.

индексная страница:

<body ng-app="starter">

<ion-pane ng-controller="AudioCtrl">
    <ion-nav-bar class="bar-positive">
        <ion-nav-back-button>
        </ion-nav-back-button>
    </ion-nav-bar>
    <ion-nav-view></ion-nav-view>
    <ion-content></ion-content>
    <ion-footer-bar ng-hide="musicBar.hide">
        <div class="audio-block">
            .....
        </div>
    </ion-footer-bar>
</ion-pane>
</body>

Страница просмотра ребенка:

<ion-view ng-controller="AudioCtrl as controller" title="{{selectedCategory}}">
    <ion-content>
        <ion-list>
            <ion-item ng-repeat="item in items" ng-click="$parent.songClicked()">{{item.desc}}</ion-item>
        </ion-list>
    </ion-content>
</ion-view>

Угловой код:

app.controller('AudioCtrl', function ($sce, $scope) {
        $scope.musicBar= {
            hide: true
        };
        $scope.songClicked = function(){
            console.log($scope.musicBar.hide);
            $scope.musicBar.hide = false;
            console.log($scope.musicBar.hide);
        };
    }

);

Когда я нажимаю элемент, я вижу, что musicBar.hide изменяется от true на false, но его не отражается в представлении. Я также проверяю другие подобные вопросы, но решение не работает. Я попробовал использовать $ scope. $ Digest() и $ scope. $ Apply(), но затем я получаю применение уже в процессе.

Теги:
angularjs-scope

1 ответ

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

Каждый раз, когда index.html и представление cub имеют собственный экземпляр AudioCtrl, каждый из которых имеет свою собственную область.

Заголовок становится видимым, когда основной вид представления musicBar.hide становится истинным, но этого никогда не происходит, потому что subview не изменяет его. Он изменяет переменную musicBar.hide области musicBar.hide.

Я не вижу причин, по которым под просмотр будет иметь тот же контроллер, что и основной вид. Это не должно.

  • 0
    Спасибо, использование $ emit и $ on работало с двумя разными контроллерами для них.

Ещё вопросы

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