1

ここで plunkr をセットアップしました: http://plnkr.co/edit/NdHqQJ?p=preview

タスクをクリックすると、フォームデータをモーダルウィンドウにプッシュおよびプルしようとしています。モーダルの「解決」プロパティ(以下を参照)でこれを行うことができると読みましたが、実際に機能させることができませんでした。どんな洞察も大歓迎です。

var modalInstance = $modal.open({
  templateUrl: 'editTask.html',
  controller: 'ModalInstanceCtrl',
  size: size,
  scope: $scope,
  resolve: {
    items: function () {
      return $scope.items;
    }
  }
});

詳細が必要な場合はお知らせください。

4

2 に答える 2

2

resolve を使用する場合 (使用できます)、nit は次のようになります。

$scope.open = function(size, task) {
    var modalInstance = $modal.open({
        templateUrl: 'editTask.html',
        controller: 'ModalInstanceCtrl',
        size: size,
        resolve: {
            task: function() {
                return task
            }
        }
    });
};

HTML:

<a ng-click="open('lg', noStoneTask)" style="cursor:pointer" tooltip-placement="top" tooltip="Open Task">{{noStoneTask.taskSubject}}</a>

デモ: http://plnkr.co/edit/NA71479d04Yw7hh2Twx8?p=preview

于 2015-10-13T14:45:14.340 に答える
1

解決するスコープを渡す (モーダルに渡す) 必要があります。モーダルコントローラーで解決します。

これはあなたが達成したいことですか? http://plnkr.co/edit/Q0G79C?p=preview

noStoneTasks スコープをモーダルに渡すようにモーダルを変更しました

//modal
$scope.open = function (size) {

    var modalInstance = $modal.open({
        templateUrl: 'editTask.html',
        controller: 'ModalInstanceCtrl',
        size: size,
        resolve: {
            noStoneTasks: function () {
                return $scope.noStoneTasks;
            }
        }
    });
};

また、ユーザーが [OK] をクリックしたときにスコープを変更します。

uxModule.controller('ModalInstanceCtrl', function ($scope, $modalInstance, noStoneTasks) {
    $scope.ok = function () {
        noStoneTasks[0].actHours++;
        $modalInstance.close('save');
    };

    $scope.cancel = function () {
    $modalInstance.dismiss('cancel');
    };
});     
于 2015-10-13T14:46:52.163 に答える