Javascript 角度引导模式-复选框未绑定到控制器
我正在使用Bootstrap3中的AngularFork中的模式:我正在尝试在模式中使用一个复选框,并将其值返回到我的主控制器中 复选框值在视图中绑定良好,但不在模态的控制器中。 下面是一个问题示例: 模态控制器:Javascript 角度引导模式-复选框未绑定到控制器,javascript,angularjs,twitter-bootstrap,Javascript,Angularjs,Twitter Bootstrap,我正在使用Bootstrap3中的AngularFork中的模式:我正在尝试在模式中使用一个复选框,并将其值返回到我的主控制器中 复选框值在视图中绑定良好,但不在模态的控制器中。 下面是一个问题示例: 模态控制器: var ModalInstanceCtrl = function ($scope, $modalInstance) { $scope.checked = false; $scope.ok = function () { $modalInstance.close(
var ModalInstanceCtrl = function ($scope, $modalInstance) {
$scope.checked = false;
$scope.ok = function () {
$modalInstance.close( $scope.checked);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
};
$scope.ok = function (result) {
$modalInstance.close( result);
};
=>ok函数中选中的$scope.checked不包含正确的值
观点:
<script type="text/ng-template" id="myModalContent.html">
<div class="modal-header">
<h3 class="modal-title">I'm a modal!</h3>
</div>
<div class="modal-body">
<label>
<input type="checkbox" ng-model="checked"> test
</label><br/>
Checked: {{checked}}
</div>
<div class="modal-footer">
<button class="btn btn-primary" ng-click="ok()">OK</button>
<button class="btn btn-warning" ng-click="cancel()">Cancel</button>
</div>
</script>
我是模态的!
测试
选中:{{Checked}
好啊
取消
有什么想法吗
提前感谢一个肮脏的把戏,就是将选中的
参数放入对象中
$scope.checked = {c:false};
$scope.ok = function () {
$modalInstance.close( $scope.checked.c);
};
您可以直接将选中值指定为函数的参数,这是绕过模态视图和关联控制器之间缺少绑定的一个小解决方法:
<button class="btn btn-primary" ng-click="ok(checked)">OK</button>
完整的工作示例它似乎不像调用
$modalInstance.close
那样使用布尔值工作得很好。如果我在里面放一根绳子,它就会起作用。不知道为什么。我不确定问题是否来自于此,我尝试在复选框中使用字符串,但仍然不起作用:这不是我的意思。如果您执行$modalInstance.close('Hi,我是一个字符串')代码>有效。参见yarons,回答他使用对象而不是布尔值的地方。这正是解决这个问题的方法。您可能应该询问UI引导的维护人员这是一个bug还是一个特性。文档中没有提到在close函数中使用布尔基元。这确实有效!我接受这个答案,即使我认为这并没有发挥应有的作用……:/