我正在玩 angular 并且遇到了 ng-class
的奇怪行为指示。这是我的应用程序模板:
<body ng-app>
{{ isSidebarExpanded }}
<div ui-view="sidebar" ng-class="{true:'expanded', false:'collapsed'}[isSidebarExpanded]"></div>
</body>
现在 - 当我改变
isSidebarExpanded
在我的 Controller 中,第一行显示它的内容(真/假)没有任何问题,但在 ng-class
中使用它产生:TypeError: undefined is not a function
我可以说是
ng-class
故障原因当我卸下零件时,它会引发该错误。我不确定我的代码的哪一部分在这里会有所帮助,因为这对我来说似乎真的很困惑。
最佳答案
我今天遇到了同样的问题,并通过创建一个简单的替代指令 ng-class-alt
暂时解决了它,在这种情况下做同样的工作。请注意 app
是我的 Angular 模块。
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 错误启发我找到丑陋的解决方案......希望这对你有所帮助。
关于angularjs - 奇怪的 ng 级行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23193577/