2016-07-12 47 views
0

我是新來的角料,我的問題是我能不能結合範圍爲DATAS對話框中的第二個開放。在mdDialog不能能範圍的變量分配的第二次

我從數據庫檢索到的數據分配給範圍變量,也綁定了範圍變量在MD對話框(第一個TOM它工作FYN沒有問題)第二無法綁定數據與MD對話框

下面

是我的代碼樣品

var retrieveData = function(){ 
    var companyUrl = dbUrl; 
    var request = { 
     url: companyUrl, 
      type: "GET", 

     }; 
    $http(request) 
      .success(function (retrievedSource){ 

    // here I am assigning retrieved data to the scope variable 
       $scope.retrievedSources = retrievedSource; 

       }).error(function(){ 
       console.log("search failed"); 
      }); 
}; 



<md-input-container class="md-icon-float md-block"> 
<label>Company Name <span> * </span></label> 
<input type="text" ng-required="true" style="width:100%;" name="companyName" ng-pattern="namePattern" value='{{retrievedSources.companyName}}' /> 
<span id="companyNameErrorMessages" class="error"></span> 

問題:

value='{{retrievedSources.companyName}}' 

此範圍內的作業已正常工作,第一次當我取消使用mdDialog取消我無法綁定

$scope.updateCancel = function() {$mdDialog.cancel()}; 

回答

1

我創建了一個CodePen與​​一個例子結合範圍數據對話框並在md-dialog中正確更新。

NEW VALUE按鈕更新$scope.reterivedSources.companyName。我不知道你是如何設置您的代碼,以顯示你的對話,但注意,這在我的代碼:

scope: $scope, 
preserveScope: true 

JS

.controller('AppCtrl', function($scope, $mdDialog) { 
    $scope.retrievedSources = { companyName: 123 }; 

    $scope.showDialog = function(ev ,id) { 
    $mdDialog.show({ 
    templateUrl: "test.html", 
    parent: angular.element(document.body), 
    clickOutsideToClose:true, 
    targetEvent: ev, 
    controller: materialEditCtrl, 
    fullscreen: false, 
    scope: $scope, 
    preserveScope: true 
    }); 
    }; 

    $scope.newValue = function() { 
    $scope.retrievedSources.companyName = Math.random() * 1000; 
    } 
}); 

標記

<div ng-controller="AppCtrl" ng-cloak="" class="buttondemoBasicUsage" ng-app="MyApp"> 
    <script type="text/ng-template" id="test.html"> 
    <md-dialog> 
      <md-input-container class="md-icon-float md-block"> 
      <label>Company Name <span> * </span></label> 
      <input type="text" ng-required="true" style="width:100%;" name="companyName" ng-pattern="namePattern" value='{{retrievedSources.companyName}}' /> 
      <span id="companyNameErrorMessages" class="error"></span> 
    </md-dialog> 
    </script> 

    <md-button ng-click="showDialog($event)" class="md-raised md-primary"> 
    edit 
    </md-button> 
    <md-button ng-click="newValue()" class="md-raised md-primary"> 
    new value 
    </md-button> 
</div> 
+0

嘿感謝的人! !在md對話框中添加「preserveScope:true」,它的作用就像一個魅力謝謝] || :-) –

+0

這只是幫助我解決了這個問題,謝謝:) – Martin