我有一个元素列表,我想通过单击折叠到单个选定元素。我无法让控制器上的代码刷新列表。我究竟做错了什么?我认为更改 $scope 会使视图重新加载。
我通过更改视图上引用的 $scope 变量使其工作。所以我的猜测是视图上引用的变量的处理方式与任何其他 $scope 属性不同。那正确吗?
AptListCtrl = ($scope) ->
   console.log apt_selected
   if $scope.apt_selected?
       $scope.apts = [$scope.apt_selected]
    else
        $scope.apts = apts
    $scope.aptClick = ($event, apt) ->
        if $scope.apt_selected?
            if $scope.apt_selected is apt
                $scope.apt_selected = null
            else
                $scope.apt_selected = apt
        else
            $scope.apt_selected = apt
        $('#selected_apt').html('Selected: ' + apt.title)
        $scope.$watch('apt_selected', (newv, oldv, scope)->
            console.log 'new'
            console.log newv
            console.log 'old'
            console.log oldv
        )
        $scope.$digest()
            <ul class="list-group" ng-controller = "AptListCtrl">
                    <li class="list-group-item" ng-repeat = "apt in apts"
                    ng-click="aptClick($event, apt)" ng-model = "apt_selected">
                    <a href="#">{{apt.marker_text}}</a>
                    </li>
            </ul>