我有一个$ scope变量表单,其中包含设备和代码字段。
$scope.form = {
device: '',
codes: "PlaceHolder_Data"
};
我想将其传递给改变它的函数。例如,我想要foo($ scope.form)来改变代码。 我这样做的方式是:
var foo = function (obj) {
obj.codes = "new data";
}
这适用于常规的javascript对象,但在这里不起作用! foo虽然是异步函数。我还在$ scope.form.codes上注册了一个$ watch到console.log的任何更改但是根本没有被调用。
答案 0 :(得分:0)
尝试将对象放入工厂,然后使用服务进行更改。
//create the function to apply to form
app.service('exService', function(){
this.exFunction(form){
//do stuff to form
return // create new stuff
};
});
//apply service to the form object
app.factory('exFactory', ['exService', function(exService) {
var exForm = {
device: '',
codes: "PlaceHolder_Data"
};
var o = exService.exFunction(exForm) //applying service to form
return o;
}]);
之后注入' exFactory'工厂进入你的控制器就像这样
app.controller('exController',['$scope', 'exFactory', function($scope, exFactory){
//Do suff with exFactory
}]);