2015-04-06 119 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