Angular Bootstrap选项卡未获取输入字段

时间:2015-04-15 19:09:05

标签: angularjs angular-ui-bootstrap

面对一个奇怪的问题,使用tabset时不会打印简单的文本字段值。写了一个样本进行演示。请在下面的链接中查看

sample link

<tabset>
    <tab heading="Static title">Testing input
    <input ng-model="nameStr" value="">
    <button class="btn btn-default btn-lg " type="button" ng-click="callMe()" >Test callme</button>
    </tab>
    <tab ng-repeat="tab in tabs" heading="{{tab.title}}" active="tab.active" disabled="tab.disabled">
      {{tab.content}}
    </tab>
    <tab select="alertMe()">
      <tab-heading>
        <i class="glyphicon glyphicon-bell"></i> Alert!
      </tab-heading>
      I've got an HTML heading, and a select callback. Pretty cool!
    </tab>
  </tabset>

建议,会错过什么。

提前致谢。

2 个答案:

答案 0 :(得分:3)

有一些关于angular-ui封装控制器内部方法的方法的问题(想法是为不同的任务设置不同的控制器)。问题是访问你原来的&#34;控制器(而不是ui-bootstrap指令中的控制器)必须在视图中使用$parent。因为$scope内的当前tabset指向另一个控制器。

所以,它会变成

<input ng-model="$parent.nameStr" value="">

我无法在angular-ui repo中找到正确的解释,但这似乎有了一些想法。

https://github.com/angular-ui/bootstrap/issues/2971

旧答案

您可以将$scope.nameStr内的$scope.callMe替换为this.nameStr

http://plnkr.co/edit/cUUQ9FQ0oEOmIltQTS2f?p=preview

答案 1 :(得分:1)

我的解决方案:

$scope.name = {};
$scope.callMe = function(){
  alert('title ->'+$scope.name.str);
}

在html中:

<input ng-model="name.str" value="">

Angular以这种方式工作得更好。使用dot属性。