1

我在页面上有更改模型部分的操作链接。这些链接具有 ng-click 功能,可触发服务器操作,该操作返回已更改的模型部分。我将 $http.get(...) 的结果分配给已更改的模型部分。但是数据永远不会被解析。

GuideControllers.controller('VideoDetailCtrl', ['$scope', '$http', '$routeParams', 'Video',
    function($scope, $http, $routeParams, Video, Preference) {
        $scope.video = Video.get({ id: $routeParams.id });
        $scope.addToWatchlist = function(id) {
            $scope.video.prefs = $http.get('/api/preference/'+id+'/add_to_watchlist.json')
        }
    }
]);

第一个 Video.get(...) 用最终更改页面的承诺填充模型,解决时 video.prefs 是正确的。但是当我单独获取 video.prefs 时,它们永远不会得到解决。我尝试将 $http.get 承诺保存在一个单独的变量中,然后在 $http.get(...).success(... 我将变量中的部分复制到 videos.prefs 但这也不起作用临时可行是一个承诺——我猜。

我应该如何通过向服务器询问那一点来更改模型的一部分?

4

1 回答 1

1

这应该这样做:

GuideControllers.controller('VideoDetailCtrl', ['$scope', '$http', '$routeParams', 'Video',
    function($scope, $http, $routeParams, Video, Preference) {
        $scope.video = Video.get({ id: $routeParams.id });

        $scope.addToWatchlist = function(id) {
            $http.get('/api/preference/'+id+'/add_to_watchlist.json').success(function(data) {
                $scope.video.prefs = data;
            });
        }
    }
]);
于 2013-10-25T19:34:35.143 回答