【发布时间】:2014-11-29 09:33:11
【问题描述】:
单击按钮时,我想打开一个模式对话框窗口并将模板 (.html) 页面加载到弹出窗口中。在我的模板中,我有一个下拉列表,需要与数据库中的数据绑定(在我的情况下,从 Angularjs Factory 服务 WCF 服务调用接收数据)
对话框窗口打开后下拉菜单未加载。
在下面找到我的代码:我第一个打开弹出对话框的控制器:
app.controller('MyFirstController', function ($scope, $compile) {
$scope.showTrackingPopup = function () {
var Id = 111;
var popupTpl = document.createElement("div");
popupTpl.setAttribute("id", "TestDialog");
popupTpl.setAttribute("ng-app", "MyApp");
popupTpl.setAttribute("ng-include", "'app/templates/Test-template.html'");
popupTpl.setAttribute("ng-controller", "MySecondController");
popupTpl.setAttribute("ng-init", "InitData(Id)");
var popupScope = $scope.$new();
popupScope.someValue = Math.random();
var popupLinker = $compile(popupTpl);
var popupElement = popupLinker(popupScope);
var dialog = $('<div/>').html(popupElement);
dialog.dialog({
modal: true,
width: 'auto',
height: 'auto',
draggable: true,
resizable: false,
position: { my: "left", at: "center", of: window },
close: function (event, ui) {
$('body').find('#TestDialog ').remove();
popupScope.$destroy();
}
});
return false;
}
});
我的第二个控制器,它从数据库中获取数据并加载到 ng-repeat 范围内并绑定下拉控件:
app.controller(' MySecondController ', function ($scope, $compile, $http, $rootScope, FactService) {
$scope.DropDownData = [];
$scope.InitData = function (Id) {
$scope.DropDownData = FactService.GetDropdownData(Id);
}
});
如何等待第二个控制器直到数据从工厂服务返回,然后自动加载下拉菜单?请帮助解决这个问题!
【问题讨论】:
标签: angularjs