我有一个 angularjs ng-class 函数,我试图用它来设置我的表格行颜色。我对 Angular 和 js 都很陌生,所以我的错误很可能是用户错误。我试图检查日期字段是否为空/未定义,然后尝试相应地设置行颜色,但我收到日期解析错误。我需要对我的约会对象做一些不同的事情吗?
谢谢!
html 设置行颜色:
<tr data-ng-repeat="s in data.sites" data-ng-class="setRowConditional({{s.LastScanReceived}})">
AngularJS Controller 功能:
//Set row color
$scope.setRowConditional = function (lastScanReceived) {
var recDate = Date.parse(lastScanReceived);
if (typeof recDate === 'undefined') {
return "danger";
}
else {
return "active";
};
}
解析错误:
Error: [$parse:syntax] Syntax Error: Token 'T13' is unexpected, expecting [)] at column 29 of the expression [setRowConditional(2013-12-18T13:59:09.397)] starting at [T13:59:09.397)].
最佳答案
如果您设置 JSFiddle 它可能会有所帮助,但我想说您可能不需要在函数调用中使用花括号。这意味着您最终会得到以下(修改后的)代码行:
<tr data-ng-repeat="s in data.sites" data-ng-class="setRowConditional(s.LastScanReceived)">
一般来说,直接在 html 模板中替换文本时需要大括号。尝试一下,让我知道它是否有效!
编辑
顺便说一句,还有另一种方法可以有条件地设置元素的类。您基本上可以使用以下语法:
<ANY ng-class="{'warning' : isWarningClass, 'error' : isErrorClass}"></ANY>
在此示例中,“isWarningClass”是范围内的 bool 值,当您想要将“any”元素的类更改为“warning”时设置该值。 “isErrorClass”遵循相同的想法。这个示例的好处是它向您展示了如何有条件地在同一元素上指定多个类。这可能是获得您正在寻找的东西的不同(更简单?)的方式。再次祝您好运!
关于javascript - AngularJS JavaScript 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750332/