gpt4 book ai didi

javascript - 分割字符串时,angularjs解析语法错误

转载 作者:行者123 更新时间:2023-12-03 10:41:18 24 4
gpt4 key购买 nike

我有一个指令,将 mysql 日期时间字符串替换为月份和日期。但它给了我解析语法错误。

指令:

directiveApp.directive('cleanDate',function(){

var monthName = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sept","Oct","Nov","Dec"];
return {
restrict: 'AE',
template: '{{mon}} {{date}}',
scope: {
timeset: '='
},
link: function(scope, element, attr) {
console.log(scope.timeset);
var t = scope.timeset.split(/[- :]/);
console.log(t);
if (parseInt(t[0]) != 0 && parseInt(t[1])!=0 && parseInt(t[2])!=0){
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
scope.mon = monthName[d.getMonth()];
scope.date = d.getDate();
}
else{
scope.mon = '';
scope.date='';
}

}
};

指令测试:

describe('getDistance Directive',function(){
var $scope,$compile,template;
beforeEach(inject(function(_$compile_, _$rootScope_){
$scope = _$rootScope_;
$compile = _$compile_;
}));

it ('Check Clean Date',function(){
var element = "<clean-date timeset='2015-01-20 11:17:32'></clean-date>";

template = $compile(element)($scope);
$scope.$digest();
expect(template.html()).toBe('January 20');
});
});

但是这个测试响应解析语法错误

Error: [$parse:syntax] Syntax Error: Token '11' is an unexpected token at column 12 of the expression [2015-01-20 11:17:32] starting at [11:17:32].

我在我的一个 ionic 项目中使用相同的代码,它工作正常,但是转移到 angularjs v1.2.28 让我很头痛。请帮忙

最佳答案

对于scope:{timeset='='}(称为isolateBinding),我们为timeset指定的属性值将被视为在范围中定义的variableName。

由于 2015-01-20 11:17:32 不是有效的 JavaScript 变量名称,解析器抛出错误。

我们应该如何使用:

//define a scope variable 
$scope.time = "2015-01-20 11:17:32";

var element = "<clean-date timeset='time'></clean-date>";

有关 Angular 隔离绑定(bind)的更多信息,请访问:https://docs.angularjs.org/guide/directive

关于javascript - 分割字符串时,angularjs解析语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28769354/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com