【发布时间】:2015-07-14 10:22:15
【问题描述】:
我有一个自定义指令,该指令具有独立的类别范围:
'use strict';
angular.module('myModule').directive('myContent', function() {
return {
restrict: 'E',
templateUrl: 'myContent.html',
scope: {
category: '='
},
controller: function($scope){
// private methods
},
controllerAs: 'myContentCtrl'
};
});
在我的主要指令中,我调用了相同的指令:
<div>
<my-content category = "category1"></my-content>
</div>
<div>
<my-content category = "category2"></my-content>
</div>
<div>
<my-content category = "category3"></my-content>
</div>
而 myContent.html 有:
<div class="form-group">
<div class="col-lg-10 navbar">
<ul class="nav nav-tabs" role="tablist">
<li class="active itemFirst"><a href="#link1" role="tab"
data-toggle="tab">Link 1 </a>
</li>
<li><a href="#link2" role="tab" data-toggle="tab">Link 2 </a></li>
<li><a href="#link3" role="tab" data-toggle="tab">Link 3 </a></li>
</ul>
</div>
</div>
<div class="form-group">
<div class="tab-content col-lg-10">
<div class="tab-pane active" id="link1">
// contents here for link 1
</div>
<div class="tab-pane" id="link2">
// contents here for link 2
</div>
<div class="tab-pane" id="link3">
// contents here for link 3
</div>
</div>
</div>
我的问题是,id 正在复制,因为相同的直接填充每个链接。 所以 UI 没有正确填充不同的指令和选项卡。
如何通过识别我发送给每个指令的类别值来分隔每个 Id。
我的要求是使 id 动态为:
id = "link1_{{category}}"
但它没有反映。我怎样才能做到这一点?
更新类别对象。
我的类别对象有一些数据,例如:
$scope.category1 = [
{obj1},
{obj2},
{obj3},
{obj4}
];
$scope.category2 = [
{obj1},
{obj2},
{obj3},
{obj4}
];
所以我不能使用 category1 对象作为 ID。相反,我如何使用分隔每个类别的字符串“category1”。我希望现在代码是清晰的。
【问题讨论】:
-
只是为了确定:
category1,category2, ... 是范围变量,对吧? -
是的。但我只需要我传递的字符串。 “类别1”
-
对于
<my-content>指令的所有实例,您是否需要为每个<div>设置不同的ID。 -
你能拼出一个 jsfiddle 来重现这个问题吗?
标签: angularjs angularjs-directive tabs scope