我正在玩角度,遇到了ng-class
指令的奇怪行为。这是我的应用模板:
<body ng-app>
{{ isSidebarExpanded }}
<div ui-view="sidebar" ng-class="{true:'expanded', false:'collapsed'}[isSidebarExpanded]"></div>
</body>
现在 - 当我在我的控制器中更改isSidebarExpanded
时,第一行显示它的内容(这是真/假)没有任何问题,但在{{1}中使用它产生:
TypeError:undefined不是函数
我可以说它ng-class
故障导致当我删除该部件时,它会抛出该错误。我不确定我的代码的哪一部分会对我有所帮助,因为它似乎让我很困惑。
答案 0 :(得分:0)
我今天遇到了同样的问题,并通过创建一个简单的替代指令ng-class-alt
暂时解决了这个问题,该指令在这种情况下执行相同的工作。请注意app
是我的角度模块。
app.directive('ngClassAlt', function() {
return {
restrict: 'A',
scope: {
ngClassAlt: '=ngClassAlt'
},
link: function(scope, elm, attrs) {
scope.$watch('ngClassAlt', function (newVal) {
_.each(scope.ngClassAlt, function(val, key) {
if(val)
elm.addClass(key);
else
elm.removeClass(key);
});
}, true);
}
};
});
丑陋的AngularJS错误激励我找到丑陋的解决方案......希望这能帮到你。