面对一个奇怪的问题,使用tabset时不会打印简单的文本字段值。写了一个样本进行演示。请在下面的链接中查看
<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>
建议,会错过什么。
提前致谢。
答案 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
。
答案 1 :(得分:1)
我的解决方案:
$scope.name = {};
$scope.callMe = function(){
alert('title ->'+$scope.name.str);
}
在html中:
<input ng-model="name.str" value="">
Angular以这种方式工作得更好。使用dot
属性。