web-dev-qa-db-ja.com

オープンモーダル関数を介してデータを渡すAngular uibModal

unit_numberがポップアップしたときにモーダルに渡す方法を見つけようとしています。私はAngularでかなり新しく、resolve:group:が何をしていて、そのreturnステートメントにunit_numberを含めることができるかについて少し混乱しています。

    $scope.openTenantModal = function (unit_number) {
  var modalInstance = $uibModal.open({
    animation: true,
    templateUrl: 'views/addtenantmodal.html',
    controller: 'AddTenantModalCtrl',
    size: 'large',
    resolve: {
      group: function () {
        return $scope.group;
      }
    }
  });
  modalInstance.result.then(function () {
  }, function () {
  });
};
13

Ui-bootstrapを使用しています

純粋なAngularJSで書かれたブートストラップコンポーネント

モーダルのコントローラーに変数を渡すには、使用する必要があります

resolve: {
   A: function() {
       return 'myVal'
   }
}

そして、それを注入することにより、モーダルのコントローラからその変数「A」にアクセスできます

controller: ['A', function(A) {
    // now we can add the value to the scope and use it as we please...
    $scope.myVal = A;
}]

チェックアウト: https://angular-ui.github.io/bootstrap/#/modal

解決:

解決され、ローカルとしてコントローラーに渡されるメンバー。これは、ルーターの解決プロパティと同等です。

そして、グループはただのメンバーです(あなたが選んだものなら何でもかまいません)

31
WalksAway

解決オブジェクトunitNumberにプロパティを追加し、unit_number値を返す関数を追加します。コントローラファクトリ関数にAddTenantModalCtrl依存関係を挿入することで、unitNumber内のunit_number値を取得できます。

resolve: {
  group: function () {
    return $scope.group;
  },
  unitNumber: function(){
    return unit_number
  }
}

unitNumber: unit_numberを直接実行しないでください。これがあると、angular DIシステムはunit_number(value)という名前の依存関係を検索しようとし、結果として、コンソールで$injectorエラーが発生します。

4
Pankaj Parkar