10

ngDialog.open でダイアログを作成するコントローラーがあります。scope:$scope を割り当て、ポップアップ $dialog で ng-model を使用してスコープ変数を設定します。ただし、コントローラの $scope には値が設定されていません。ng-click 関数は $scope 内の関数を呼び出すことができます。

こことgithubでかなり検索し、ドキュメントを読み、プロジェクトのgithubで提供されているすべての例を操作しました。

以下の JS Fiddles で説明しています。これは、scope:$scope が .open() のように見えるものではないことを示しています。これは一方向バインディングであり、$scope には戻りません。.openConrm() は期待どおりの動作をしているようです。

ngDialog.open() - http://jsfiddle.net/s1ca0h9x/ (修正済み!!期待どおりに動作します)

ngDialog.openConfirm() - http://jsfiddle.net/tbosLoa9/ (期待どおりに動作します)

var myApplication = angular.module('myApplication', ['ngDialog']);

myApplication.controller('MainController', function ($scope, ngDialog) {
$scope.FormData={newAccountNum:''};
$scope.ShowNgDialog = function () {
    ngDialog.open({            
        template: '<div><input type="text" ng-model="FormData.newAccountNum"/></div>',
        plain: true,
        scope:$scope

    });
}    

});

4

2 に答える 2

14

元の投稿を編集し、以下に追加しました。FIXED リンクは機能していることを示し、2 つ目は壊れていることを示しています。(javascript オブジェクトを使用して) ドットを追加すると、問題が解決します。

ngDialog.open() - http://jsfiddle.net/s1ca0h9x/ (修正済み!!期待どおりに動作します)

ngDialog.openConfirm() - http://jsfiddle.net/tbosLoa9/ (期待どおりに動作します)

var myApplication = angular.module('myApplication', ['ngDialog']);

myApplication.controller('MainController', function ($scope, ngDialog) {
    $scope.FormData={newAccountNum:''};
    $scope.ShowNgDialog = function () {
        ngDialog.open({            
            template: '<div><input type="text" ng-model="FormData.newAccountNum"/></div>',
            plain: true,
            scope:$scope

        });
    }    
});     
于 2014-09-17T01:38:05.467 に答える