10

我有一个控制器,它使用 ngDialog.open 创建一个对话框。我在弹出的 $dialog 中分配 scope:$scope 并使用 ng-model 设置范围变量。但是,这些值未在控制器 $scope 中设置。ng-click 函数能够调用 $scope 中的函数。

有什么我遗漏的吗,我在这里和 github 上搜索了很多,阅读了文档并使用了项目中 github 上提供的所有示例。

下面的 JS Fiddles 解释了。它表明 scope:$scope 不是 .open() 看起来的样子。这是一种单向绑定,不会返回到 $scope。.openConfrm() 似乎具有预期的行为。

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 链接显示它工作正常,第二个链接显示它已损坏。添加一个点(使用 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 回答
0

ngDialog 使用任何类型的属性传递范围 - http://jsfiddle.net/akgdxhd0/

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

myApplication.controller('MainController', function ($scope, ngDialog) {
  $scope.accountNum = '';
  $scope.ShowNgDialog = function () {
    ngDialog.open({            
        template: '<div><input type="text" ng-model="accountNum"/></div>',
        plain: true,
        scope: $scope
    });
  };    
});
于 2014-09-09T15:16:53.770 回答