Javascript 丰富的标签和隐藏的内容

Javascript 丰富的标签和隐藏的内容,javascript,angularjs,tabs,Javascript,Angularjs,Tabs,我现在有一个问题:我做了3个指令来检查plunkr是否有一个“简化”的测试用例,不要介意它们来自控制选项卡的Typescript的闭包,使用一个控制器将它们分组,因为我可以在当前视图中有多个选项卡内容。当选项卡本身具有一些位于作用域之外的绑定,并且当选项卡处于“转置”位置时,由于作用域不同,绑定永远不会更新,就会出现问题 这是plunkr,这是tab transclude部分,这很重要 this.link=功能范围、元素、属性{ var clickEvent,el,item; item=scop

我现在有一个问题:我做了3个指令来检查plunkr是否有一个“简化”的测试用例,不要介意它们来自控制选项卡的Typescript的闭包,使用一个控制器将它们分组,因为我可以在当前视图中有多个选项卡内容。当选项卡本身具有一些位于作用域之外的绑定,并且当选项卡处于“转置”位置时,由于作用域不同,绑定永远不会更新,就会出现问题

这是plunkr,这是tab transclude部分,这很重要

this.link=功能范围、元素、属性{ var clickEvent,el,item; item=scope.item; 控制台。对数示波器; el=item.element.filter'.是制表符'; el.addClass“picker-tabs-item”; 单击事件='tabs.selectitem;'; 如果el.是“[ng click]”{ clickEvent+=el.attr'ng单击“+”;”; } el.attr'ng-click',clickEvent; el.attr'ng-class','tabs.classesitem'; item.element=$compileitem.elementscope; element.replaceWithitem.element; }; 当前的方法将原始作用域和元素保留在一个数组中,这让人感觉很不舒服。另外,在我的应用程序中,数据是在标签加载后加载的,所以它甚至不能保留一些初始状态。这些选项卡现在如下所示:

以及它的外观,但不起作用,如您所见,单击一个选项卡可选择所有选项卡:

我的应用程序中的实际选项卡代码:

帕加门托形式酒店 卡托 德比托 博莱托 登录空间和用户空间只是将其分配给登录和用户控制器的指令。签出是ui视图中的当前控制器

$stateProvider.state'planos.checkout'{ url:“/checkout”, templateUrl:“/templates/partials/plans/checkout”, controllerAs:“签出”, 控制器:控制器。签出, 数据:{ 允许:false, 随函附上:正确 } }; 由于签出控制器必须只实例化一次,所以我无法重新实例化它,但仍然需要访问它的函数和绑定数据


“/templates/partials/plans/checkout”包含上面的选项卡代码,因此是的,从技术上讲,它与Plunk中的签出控制器在同一范围内,将选项卡更改为:

<span data-subctrl="">{{ subctrl.sum('credito') }}</span>
显示总数。我看了subctrl是什么,你把它作为一个指令,这就是subctrl.sum不起作用的原因。用它工作的Plunker:


如果这不是你的应用程序的问题所在,那么请再详细描述一下。

解决这个问题的方法是删除选项卡的html内容,对内部内容应用不同的范围,然后重新附加到原始元素

this.link=功能范围、元素、属性{ var clickEvent,el,item; item=scope.item; 控制台。对数示波器; el=item.element.filter'.是制表符'; var contents=el.html;//已添加 el.empty;//已添加 el.addClass“picker-tabs-item”; 单击事件='tabs.selectitem;'; 如果el.是“[ng click]”{ clickEvent+=el.attr'ng单击“+”;”; } el.attr'ng-click',clickEvent; el.attr'ng-class','tabs.classesitem'; item.element=$compileitem.elementscope; item.element.append$compile+contents+item.scope;//已添加 element.replaceWithitem.element; };
我已经更新了我的OP。这是一个过于简单的plunkr,只是试图归结为问题,但我已经解释了绑定和作用域在edit中的来源仍然是同一个问题。。。看起来你的应用程序不知道什么是结帐。您将其设置为控制器并不意味着dom将有权访问它。将console.log放入subctrl控制器中,您就会明白。我不能多次初始化控制器。因此,我不能将其插入选项卡中的元素,这意味着我不能多次$compile该元素,尽管它在加载路由时已被编译,然后transclude尽管我没有使用与您在plunkr中使用的完全相同的方法,但我提供了一个类似于ng transclude指令的解决方案