Tabs 在用户界面选项卡中获取范围

Tabs 在用户界面选项卡中获取范围,tabs,angularjs,scope,angular-ui,Tabs,Angularjs,Scope,Angular Ui,我在选项卡(角度UI)上下文中使用角度范围时遇到一些问题 下面是我的示例(精简后的示例显示了多个选项卡上的字段,在选项卡外有一个提交按钮) 以下是基本的html布局: <form...> <tab> <pane> <input...> </pane> </tab> </form> 查看,如果我提交一个非常基本的表单,没有标签,我会看到$scope.user是一个对象。由于

我在选项卡(角度UI)上下文中使用角度范围时遇到一些问题

下面是我的示例(精简后的示例显示了多个选项卡上的字段,在选项卡外有一个提交按钮)

以下是基本的html布局:

<form...>
  <tab>
    <pane>
      <input...>
    </pane>
  </tab>
</form>


查看,如果我提交一个非常基本的表单,没有标签,我会看到$scope.user是一个对象。由于字段位于窗格(选项卡)内,因此范围不正确。如何在createUser中访问已提交的用户对象?

问题在于
用户
模型被深埋在一个孤立的范围内。要使代码按预期工作,您需要发出
警报
输出
$scope.$$childHead.panes[0].$$nextSibling.user.first\u name
$scope.user
。这显然不是一个解决办法

一个简单的解决方案是向控制器作用域添加一个空的
user
对象。HTML中的
ng model
指令将绑定到此属性。您的控制器应如下所示:

function MyCtrl($scope) {
  $scope.user = {};
  $scope.createUser = function () {
    alert($scope.user);
  };
}

非常感谢。完全有道理。注意,在OP的fiddle中,
user
对象是在指令的转移范围(而不是指令的隔离范围)上创建的。