我是角度素材的新手,我的问题是我无法在第二次打开对话框时绑定范围数据。
我从分配给范围变量的数据库中检索数据,并且还在md对话框中绑定了范围var。(对于第一个tym,它工作fyn没有问题)在第二个cant能够使用md-dialog框绑定数据< / p>
下面是我的代码示例
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()};
答案 0 :(得分:1)
我创建了一个CodePen,其中包含J
绑定并在$scope.reterivedSources
中正确更新的示例。
新值按钮会更新md-dialog
。我不知道您是如何设置代码来显示对话框的,但请在我的代码中注明:
$scope.reterivedSources.companyName
JS
scope: $scope,
preserveScope: true
标记
.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;
}
});