Angularjs 改变函数中的作用域数据

Angularjs 改变函数中的作用域数据,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我正在开发一个带有angular的应用程序,我想在编辑页面中对一个对象变量进行一些计算 例如,当我得到我的命题(对象)时,我想在页面加载时设置命题.marge_理论如下命题.marge_理论=2*命题.marge_格栅 我要做的第一件事是使用API获取对象,然后调用我的函数calcul(),该函数必须进行计算 我的问题是,我不知道如何告诉calcul修改$scope.proposition 这是我的密码 'use strict'; var app = angular.module('app',

我正在开发一个带有angular的应用程序,我想在编辑页面中对一个对象变量进行一些计算

例如,当我得到我的命题(对象)时,我想在页面加载时设置
命题.marge_理论
如下
命题.marge_理论=2*命题.marge_格栅

我要做的第一件事是使用API获取对象,然后调用我的函数
calcul()
,该函数必须进行计算

我的问题是,我不知道如何告诉calcul修改$scope.proposition

这是我的密码

'use strict';

var app = angular.module('app', []);

app.controller('propositionCtrl',['$scope', 'propositionRepository', '$http',
    function ($scope, propositionRepository, $http) {
       // $scope.proposition = { marge_propose: 3 };



        //////////////////////////////DEFINITIONS////////////////////////////////////
        $scope.submit = function () {
            $http.put('/api/propositionapi', $scope.proposition);
        }




        function getProposition() {
            propositionRepository.getProposition(function (result) {
                $scope.proposition = result;

            }
            )
        }

        function calcul(contexte) {
           contexte.proposition.marge_theorique = contexte.proposition.marge_grille * 2;
        }

        ///////////////////////////////UTILISATION///////////////////////////////////
        console.log("on est dans la page");
        getProposition();
        calcul($scope);
;
    }])

app.factory('propositionRepository', function ($http) {
    return {
        getProposition: function (callback) {
            $http.get('/api/propositionapi/3').success(callback);
        }
    }
})
我也尝试过这样做

        function calcul() {
           $scope.proposition.marge_theorique = $scope.proposition.marge_grille * 2;
        } 
然后只需调用
calcul()
,但它也不起作用

我该怎么办


非常感谢

调用的
getProposition
本质上是异步的,您需要等待响应可用。您可以使用回调函数。更新
getProposition
函数

function getProposition() {
            propositionRepository.getProposition(function (result) {
                $scope.proposition = result;
                calcul($scope);
            })
        }

并删除调用
calcul($scope)
getProposition()之后完成从控制器的末尾开始

谢谢它的工作!问题是,当用户在编辑页面中更改proposition.marge_grill的值时,必须调用calcul。我不知道怎么做…我不知道你的应用程序的结构,但看看角度手表。它们可以跟踪模型更改并触发事件处理程序。