使用范围时,$ dialog中的ngModel字段未更新ngDialog $ scope变量:$ scope

时间:2014-09-08 01:57:35

标签: javascript angularjs ng-dialog

我有一个控制器,可以使用ngDialog.open创建一个对话框。我在弹出框$对话框中指定范围:$ scope并使用ng-model设置范围变量。但是,值未在控制器$ scope中设置。 ng-click函数可以调用$ scope中的函数。

我是否缺少某些内容,我在这里搜索了很多内容和github,阅读了文档并使用了项目中github上提供的所有示例。

下面的JS Fiddles解释道。它显示范围:$ 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

    });
}    

});

2 个答案:

答案 0 :(得分: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

        });
    }    
});     

答案 1 :(得分: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
    });
  };    
});