我有一个控制器,可以使用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
});
}
});
答案 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
});
};
});