0

ユーザーが名前を入力して、ダイアログから結果を渡すコントローラーでメソッドを呼び出すことができるダイアログを開こうとしています。

class MyController {

    constructor(public $scope, public $dialog) {
    }

    AddNew() {

        var t = '<form name="form" novalidate><div class="modal-header">' +
          '<h3>Nova mapa</h3>' +
          '</div>' +
          '<div class="modal-body">' +
          '<p>Name: <input ng-model="result" type="text" required/></p>' +
          '</div>' +
          '<div class="modal-footer">' +
          '<button ng-click="close()" class="btn btn-primary" >Close</button>' +
          '<button ng-click="close(result)" class="btn btn-primary" ng-disabled="form.$invalid">Save</button>' +
          '</div><form>';

        this.$scope.opts = {
            backdropClick: false,
            template: t,
            controller: 'AddNewDialog'
        };


        var d = this.$dialog.dialog(this.$scope.opts);
        d.open().then(function (result) {
            if (result) {
                // this does not work 
                this.AddNewInternal(result)
            }
        });
    }

    private AddNewInternal(description: string) {
        //logic here

    };
}

function AddNewDialog
    ($scope, dialog) {
    $scope.close = () => {
        $scope.close(undefined);
    }
    $scope.close = (result) => {
        dialog.close(result);
    };
}

「オブジェクトはプロパティまたはメソッド 'AddNewInternal' をサポートしていません」というエラーが表示されます。ありがとうございました

4

0 に答える 0