0

我用 Angular 1.5 组件制作了一个应用程序。我通过参数向组件提供数据resolve,这样我可以在同一个组件中显示来自不同来源的任何数据。但我不明白,如何更改组件中的一些数据。

例如,我有一个用户服务,它通过 API 与用户一起工作。在我的状态下,我加载一个组件并使用方法 Users.get()。我使用 UI 路由器。

//...
$stateProvider
      .state('users', {
        url: '/users',
        component: 'formPage',
        resolve: {
          values: function(Users) {
            return Users.get();
          });
//...

//...
component('formPage', {
  bindings: {
    values: '<'
  },
//...

我在这个组件中有一个表单并且想要更改数据。我想在提交表单时调用 Users.update() 方法。但是该组件对用户服务一无所知,这是正确的。

我如何指定该组件必须使用 Users.update() 来更新此状态下的数据?提交表单时如何在组件中调用此方法?

4

1 回答 1

2
resolve: {
  values: function(Users) {
    return Users.get();
  },
  onUpdate: function(){
    return Users.update.bind(Users);
  }
);

bindings: {
    values: '<',
    onUpdate: '<'
},

你可以这样称呼它$ctrl.onUpdate(data).then(...

于 2016-10-26T13:44:43.073 回答