AngularJS中then函数中的访问方法参数

AngularJS中then函数中的访问方法参数,angularjs,Angularjs,我在AngularJS中有以下代码。我无法在'updatePreferenceComplete'的then函数中访问'preference'的原始方法参数 如何访问上述then函数中的“首选项”原始参数? function updatePreference(preferenceId, preference) { var prefId = angular.isNumber(preferenceId) ? preferenceId : 0; logge

我在AngularJS中有以下代码。我无法在'updatePreferenceComplete'的then函数中访问'preference'的原始方法参数

如何访问上述then函数中的“首选项”原始参数?

        function updatePreference(preferenceId, preference) {
        var prefId = angular.isNumber(preferenceId) ? preferenceId : 0;
        logger.info('updatePreference: fetching; preferenceId: ' + prefId);

        var route = userPreferenceConstants.endPoints.PREFERENCE_BY_ID
            .replace('{prefId}', prefId);

        return $http.put(route, preference)
            .then(updatePreferenceComplete)
            .catch(function (message) {
                exception.catcher('XHR failed for updatePreference')(message);
            });

        function updatePreferenceComplete(response) {
            //cannot access preference parameter
            logger.info('updatePreference: complete');
            return response.data;
        }
    }

你能在fiddle中复制吗?你在哪个浏览器上测试这个?我正在从func警报中获取正确的
变量。在此上下文中应该可以访问首选项。。。你的变量也会出现在我的提醒中。@Sunil不,我把“variable from func”硬编码到它里面。@Sunil是的,这就是为什么你在代码中看不到它的原因。
    return $http.put(route, preference)
        .then(function(response) {
            updatePreferenceComplete(response, preference);
        })
        .catch(function (message) {
            exception.catcher('XHR failed for updatePreference')(message);
        });

    function updatePreferenceComplete(response, preference) {
        // now you can access preference, because it's passed as argument to the function
        logger.info('updatePreference: complete');
        return response.data;
    }