我有一个带有以下模板(jade语法)的angular-bootstrap模态对话框:
div.modal-body
select(ng-model="chosenProject" id="chosenProject", ng-options="c.value as c.name for c in selectItems")
div.modal-footer
button.btn.btn-primary(ng-click="ok()") Change project
button.btn.btn-warning(ng-click="cancel()") Cancel
阵列的预填充效果很好。 Dialog配置了它的控制器,它定义了简单的ok()函数,下面是来自控制器主体的excepmt:
$scope.chosenProject = 0; // needed to have selected initial item with value=-1 in the select
$scope.ok = function () {
console.log("OK clicked, chosenProject " + $scope.chosenProject);
$modalInstance.close($scope.chosenProject);
};
功能正常。根据console.log,$ scope.chosenProject仍然与我在select中选择的内容相同,只返回我在“$ scope.chosenProject = 0;”行中预设的内容。我很感激如何解决这个问题。
答案 0 :(得分:2)
由于控制器和模态模板之间存在转换范围,因此出现此问题。
试试这个 - 在模态的控制器中,替换:
$scope.chosenProject = 0;
与
$scope.chosenProject = {
value: 0
};
模态模板,替换
select(ng-model="chosenProject" id="chosenProject"
ng-options="c.value as c.name for c in selectItems")
与
select(ng-model="chosenProject.value" id="chosenProject"
ng-options="c.value as c.name for c in selectItems")
然后应正确捕获所选项目。
答案 1 :(得分:0)
您需要将selectedProject传回
modalInstance.result.then(function(result) {
});
如果您需要在一个页面中添加更多对话框,This是一个非常好的简单对话框服务。