我正在开发一个带角度的应用程序,我想对编辑页面中的对象变量进行一些数学运算。
例如,当我得到我的命题(对象)时,我想在页面加载时设置proposition.marge_theorique
像这样proposition.marge_theorique= 2 * proposition.marge_grille
。
我做的第一件事是我使用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()
,但它也不起作用......
我该怎么办?
非常感谢!
答案 0 :(得分:1)
getProposition
调用本质上是异步的,您需要等待响应可用。您可以使用回调。更新getProposition
功能。
function getProposition() {
propositionRepository.getProposition(function (result) {
$scope.proposition = result;
calcul($scope);
})
}
并从控制器
结束后删除calcul($scope);
之后完成的调用getProposition();