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 サービスについて何も知りません。そのとおりです。

この状態でデータを更新するためにコンポーネントが 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 に答える