0

私は2つのコントローラー、投稿、およびctrlを備えた角度のあるアプリを持っています。また、いくつかの要素を非表示/表示するために ng-if を使用します。

Ctrl-controller は値 $scope.age を true に設定します。Posts-controller で age=true を設定すると、ng-if-things がトリガーされますが、ページをリロードするまでトリガーされません。なぜいけないのですか?どうすればいいですか?

<body ng-controller="Posts">
    <div class="age red" ng-if="!(age)">
        <form ng-submit="submit()" ng-controller="Ctrl">
            <div class="pair">
                <label for="yes">Ja, jag har fyllt 20 år</label>
                <input name="yes" type="checkbox" required>
            </div>
            <input type="submit" value="Gå vidare">
        </form>
    </div>
    <div ng-if="age">
            <form class="quiz" ng-class="input"> <label class="first">Dofta på glöggen. Hur doftar Blossa 13?</label>
                ...
            </form>
        </div>

        <section class="{{post.type}}" ng-repeat="post in posts">
           ...
        </section>
    </div>
</body>

Javascript

function Posts($scope, $http) {

    $http.get('/getposts')
    .success(function(data, status, headers, config) {
        $scope.posts = data;
    })
    .error(function(){
        console.log('ajax failed');
    });

    $scope.age = localStorage.getItem('age');
}
function Ctrl($scope) {
    $scope.submit = function() {
        localStorage.setItem('age', true);
        $scope.age = true;
        console.log($scope.age);
    };
}
4

1 に答える 1