Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度引导模式-复选框未绑定到控制器_Javascript_Angularjs_Twitter Bootstrap - Fatal编程技术网

Javascript 角度引导模式-复选框未绑定到控制器

Javascript 角度引导模式-复选框未绑定到控制器,javascript,angularjs,twitter-bootstrap,Javascript,Angularjs,Twitter Bootstrap,我正在使用Bootstrap3中的AngularFork中的模式:我正在尝试在模式中使用一个复选框,并将其值返回到我的主控制器中 复选框值在视图中绑定良好,但不在模态的控制器中。 下面是一个问题示例: 模态控制器: var ModalInstanceCtrl = function ($scope, $modalInstance) { $scope.checked = false; $scope.ok = function () { $modalInstance.close(

我正在使用Bootstrap3中的AngularFork中的模式:我正在尝试在模式中使用一个复选框,并将其值返回到我的主控制器中

复选框值在视图中绑定良好,但不在模态的控制器中。 下面是一个问题示例:

模态控制器:

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函数中使用布尔基元。这确实有效!我接受这个答案,即使我认为这并没有发挥应有的作用……:/