我正在创建一个包含许多视图的表单,这些视图将聚合到包含用户信息的对象。我有一个具有form.js文件的组件:
import angular from 'angular';
import FormController from './form-controller';
import FormService from './form-service';
export default angular.module('Form', [])
.controller('formController', FormController)
.service('formService', FormService));
form-service.js:
import angular from 'angular';
export default class FormService {
constructor() {
this.master = {};
}
addData(user) {
this.master = angular.extend(this.master, user);
return user; //don't really need to return this yet
}
}
和form-controller:
import angular from 'angular';
import FormService from './form-service';
export default class FormController {
constructor() {
this.service = new FormService;
}
update(user) {
this.service.addData(this.master);
}
}
所以问题是数据没有聚合,可能是因为我在FormController构造函数中实例化了一个新的服务对象。但是,否则我得到了
formService2.default.addData不是函数
错误消息
我知道这看起来很傻但是我对角度有点新意,并且不确定我应该如何从控制器调用服务功能。
答案 0 :(得分:0)
服务是一个单例,因此整个应用程序中只有一个服务实例。如果您需要从formService创建多个对象实例,那么您应该替换它:
.service('formService', FormService));
用这个:
.factory('formService', FormService));
在课堂上注入服务会很有趣,因此您不需要使用new FormService
进行实例化。