2015-04-06 72 views
0

我正在从ngDialog弹出窗口更新一个范围变量。ngDialog - 弹出不更新范围变量

查看:

<input type="radio" name="file_selector" value={{file.id}} ng-model="selected_file.id" ></input> 
 

controller.js

$scope.selected_file = {'id' : '22'}; 

如果我在非弹出HTML,NG-模型更新和视图改变上述观点。

ngDialog:

$scope.openUploadPopup = function() { 
 
\t \t ngDialog.open({ 
 
\t \t \t template: 'partials/upload.html', 
 
\t \t \t controller: 'notificationController', 
 
\t \t \t className: 'ngdialog-theme-default', 
 
\t \t \t scope: $scope 
 
\t \t \t }); 
 
}

编辑:Plunker:http://plnkr.co/edit/8TUtwixKwvVaycDuvHd9?p=preview

+0

你能否创造一个蹲点? – 2015-04-06 06:27:50

+1

调度员:http://plnkr.co/edit/8TUtwixKwvVaycDuvHd9?p=preview – Rakesh 2015-04-06 07:53:49

+0

你的调度员不工作。这是问题吗? – 2015-04-06 08:08:57

回答

2

我改变你的文件,对我的作品。

HTML:

<html> 

    <head> 
    <script src="https://code.angularjs.org/1.4.0-beta.6/angular.js"></script> 
    <script src="http://likeastore.github.io/ngDialog/js/ngDialog.min.js"></script> 
    <link rel="stylesheet" href="style.css" /> 
    <script src="script.js"></script> 
    </head> 

    <body ng-app="notifications_web_portal" ng-controller="notificationController"> 
    <div ng-view> 
    <h1>Hello Plunker!</h1> 
     <span> File selected : {{selected_file.id}}</span> 
     <a href='javascript:void(0)' ng-click="openUploadPopup()" >Open Dialog</a> 
     </div> 
    </body> 

</html> 

JS:

// Code goes here 
var notifApp = angular.module('notifications_web_portal', ['ngDialog']); 

notifApp.controller('notificationController', function($scope, $rootScope, $window , ngDialog) { 
    $scope.openUploadPopup = function() { 

    ngDialog.open({ 
     template: '<input type="radio" name="file_selector" value="87" ng-model="selected_file.id" ></input>', 
     controller: 'notificationController', 
     plain: true, 
     className: 'ngdialog-theme-default', 
     scope: $scope 
     }); 
    } 
}); 

变化做:

  • plain: true添加
  • notifApp.controller('notificationController',......
+0

在实际代码中,我不能使用plain:true,因为代码足够大,并且出于可维护性的原因不能将其作为字符串发送。 – Rakesh 2015-04-06 09:05:55

+0

你应该使用plain:true,否则创建一个文件externalTemplate.html,添加如下模板:'externalTemplate.html', – 2015-04-06 09:21:40

+0

是的,任何想法为什么我需要声明“$ scope.selected_file = {'id':'' };”内部功能,而不是控制器范围内的任何地方..说在控制器的第一行。它在后一种情况下不起作用。 – Rakesh 2015-04-06 10:48:13