AngularJS如何改变模型的一部分

时间:2013-10-25 17:56:27

标签: javascript angularjs

我在页面上有操作链接,可以更改模型的各个部分。这些链接具有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但是这样做不起作用温度可行是一个承诺 - 我想。

如何通过向服务器询问该位来更改部分模型?

1 个答案:

答案 0 :(得分: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;
            });
        }
    }
]);