Angularjs 更改对象时未更新ng bind span';s属性
在下面的代码中,我在单击“tab”元素时更改了对象的属性,但是没有更新相应的ngbind范围。我需要调用一些函数来更新视图吗 HTML:Angularjs 更改对象时未更新ng bind span';s属性,angularjs,Angularjs,在下面的代码中,我在单击“tab”元素时更改了对象的属性,但是没有更新相应的ngbind范围。我需要调用一些函数来更新视图吗 HTML: 第一个问题:您没有将控制器绑定到应用程序。 您需要cf.controller('Application',Application)。 此外,您还需要在该span和tabpanel指令的父级上使用HTML格式的ng controller=“Application” 第二个问题:更改事件中的范围变量后,单击需要更改的事件 scope.$apply()让Angula
第一个问题:您没有将控制器绑定到应用程序。 您需要
cf.controller('Application',Application)代码>。
此外,您还需要在该span
和tabpanel
指令的父级上使用HTML格式的ng controller=“Application”
第二个问题:更改事件中的范围变量后,单击需要更改的事件
scope.$apply()
让Angular知道某些更改,它需要$digest
它
你可以看看我的版本
这对我很有用。只是缺少一点范围。在那里应用$apply
如果您发现自己在使用“$apply已在进行中”,可能需要查看一下
如果要将值更改为单击的值,我将执行以下操作:
scope.$parent.selector.val = attrs.tab;
<tabpanel selector="obj">
<div tab="junk">junk</div>
<div tab="super">super</div>
</tabpanel>
与之相反:
scope.$parent.selector.val = "newthing";
然后您可以将标记更改为如下所示:
scope.$parent.selector.val = attrs.tab;
<tabpanel selector="obj">
<div tab="junk">junk</div>
<div tab="super">super</div>
</tabpanel>
废旧物品
超级的
希望有帮助 你有一些答案,但我非常怀疑你是否需要这些指示。通常,对$scope.apply()的需求意味着一种不太理想的方法。只有在使用非角度代码时才需要(就像一个在angular的控制之外运行的第三方库。你确定没有指令就不能完成你所需要的吗?我给你举了一个选项卡的例子,只在视图和控制器之间使用数据绑定。非常简单。你可以做比仅使用数据绑定更复杂的事情。非常感谢@m59,这只是一个小问题我粘贴在这里的代码片段。实际上,您的选项卡组件似乎也是一种更简单的方法。我将尝试一下。控制器的目的是将数据绑定到视图,就像这样。您可以说$scope是视图的数据表示形式。类似于$scope.selectedTab
的内容不是关于dom操作,而是关于视图表示形式基于数据(所选内容),因此不需要特殊指令。
<tabpanel selector="obj">
<div tab="junk">junk</div>
<div tab="super">super</div>
</tabpanel>