下面是一个示例代码,展示了如何将函数与作用域一起传递给AngularJS工厂:
angular.module('myApp', [])
.controller('myController', function($scope, myFactory) {
$scope.name = 'John Doe';
$scope.age = 30;
$scope.updatePerson = function() {
myFactory.updatePerson($scope.name, $scope.age);
};
})
.factory('myFactory', function() {
var person = {
name: '',
age: 0
};
return {
updatePerson: function(name, age) {
person.name = name;
person.age = age;
console.log('Person updated:', person);
}
};
});
在上面的代码中,我们创建了一个名为myApp
的AngularJS应用程序,并定义了一个名为myController
的控制器。控制器依赖于一个名为myFactory
的工厂。
在控制器中,我们定义了一个updatePerson
函数,该函数将调用myFactory
工厂的updatePerson
方法,并传递$scope.name
和$scope.age
作为参数。
在工厂中,我们创建了一个名为person
的对象,该对象具有name
和age
属性。工厂返回一个包含updatePerson
方法的对象,该方法将更新person
对象的属性,并在控制台中打印出更新后的person
对象。
这样,当updatePerson
函数被调用时,它将更新person
对象,并在控制台中打印出更新后的结果。