0

我刚刚通过实现引导示例开始使用 Onsen UI,并且我一直在尝试在更改页面属性时更新视图。

<body ng-controller="PageLoadingCtrl">
<ons-screen page="{{loadedPage}}"></ons-screen>
</body>

我的控制器的代码:

app.controller('PageLoadingCtrl', ['$scope', '$timeout', 'notificationService',
    function($scope, $timeout, sharedService){
        $scope.loadedPage = "index.html";
        $scope.updatePage =  function(page){
            $timeout( function (){
                $scope.loadedPage = page;
                $scope.$apply();
            }, 500);
        };
        $scope.$on('changePage', function (event, message){
            $scope.updatePage(message);
        });
    }
]);

如您所见,我在 body 对象上使用了一个控制器,以便我可以更新loadedPage 变量,但是,当我触发changePage 事件时,视图不会改变。在使用 web 检查器检查 DOM 元素后,我可以看到 page 属性等于我传递给 updatePage 函数的任何内容。

到目前为止,我尝试使用 $apply 和 $digest 强制刷新,但这仍然不起作用。

干杯!

4

1 回答 1

2

因为 ons-screen 需要维护页面堆栈。对页面属性使用绑定并不直观。

使用ons.screen.presentPage()/dismissPage()/resetPage() 是首选方式。

于 2014-05-15T05:28:35.577 回答