Javascript AngularJS:将字符串拆分为数组,获取第一个元素
也许这是一个愚蠢的问题,但我无法真正摆脱它。 在AngularJS Web应用程序中,我用一个过滤器拆分了一个从JSON获取的字符串,我无法修改:现在整个字符串(日期+小时)被划分为一个由2个元素组成的数组(数组[0]=日期,数组[1]=小时),但我不知道如何只获取HTML中的第一个元素 我不能将单个元素作为作用域传递,也不能使用ng repeat,因为我必须为每个元素分配不同的类 HTML: 我需要这样的东西:Javascript AngularJS:将字符串拆分为数组,获取第一个元素,javascript,html,arrays,angularjs,scope,Javascript,Html,Arrays,Angularjs,Scope,也许这是一个愚蠢的问题,但我无法真正摆脱它。 在AngularJS Web应用程序中,我用一个过滤器拆分了一个从JSON获取的字符串,我无法修改:现在整个字符串(日期+小时)被划分为一个由2个元素组成的数组(数组[0]=日期,数组[1]=小时),但我不知道如何只获取HTML中的第一个元素 我不能将单个元素作为作用域传递,也不能使用ng repeat,因为我必须为每个元素分配不同的类 HTML: 我需要这样的东西: <span class="A">03/02/2014</span
<span class="A">03/02/2014</span>
<span class="B">20:40</span>
2014年2月3日
20:40
谢谢大家! 很可能这样做:
<span class="date">{{ (manif.avvenimento.data | split:' ')[0] }}</span>
<span class="time">{{ (manif.avvenimento.data | split:' ')[1] }}</span>
{(manif.avvenimento.data | split:''[0]}
{{(manif.avvenimento.data | split:''[1]}
我将把这两个字符串放在一个单独的对象中。这样,您就不会在每个摘要周期上执行字符串拆分,这对性能更有利
在控制器中:
$scope.timestamp = {
'date': '',
'time': ''
}
$scope.$watch(manif.avvenimento.data, function (newValue, oldValue) {
$scope.timestamp.date = ... // Place the date here
$scope.timestamp.time = ... // Place the time here
});
在HTML中:
<span class="time">{{timetamp.time}}</span>
<span class="date">{{timetamp.date}}</span>
{{timetamp.time}
{{timetamp.date}
要从后端获取JSON数组,请将以下内容添加到AngularJS控制器:
$scope.timestamp = {
'date': '',
'time': ''
}
$scope.$watch(manif.avvenimento.data, function (newValue, oldValue) {
$scope.timestamp.date = ... // Place the date here
$scope.timestamp.time = ... // Place the time here
});
var dtRes=$resource('URL to your resource object');
$scope.dtArr=dtRes.query();
然后使用以下命令在HTML中对其进行迭代:
{{dt.date}{{dt.time}
谢谢,成功了!:)我试图使用ng if=“$index==0”等等,但您的解决方案正是我所需要的。我不希望它以这种方式工作:)正如我所说,我不能使用作用域修改字符串,因为它是由我需要重复的元素组成的更大作用域的一部分。@peppeuz:你不能更改作用域吗?所选答案的缺点是,每次对范围进行脏检查时,分割都会执行两次,这种情况在角度上非常常见。这可能会降低应用程序的速度,尤其是当您将其与ng repeat结合使用时。我的回答并没有回答您的具体问题,但请记住,如果您的应用程序开始运行缓慢,请记住这一点。有关摘要和性能的更多信息:
<span class="time">{{timetamp.time}}</span>
<span class="date">{{timetamp.date}}</span>