AngularJS:拆分字符串作为数组,获取第一个元素

时间:2014-02-03 15:13:58

标签: javascript html arrays angularjs scope

可能这是一个愚蠢的问题,但我无法摆脱它。 在一个AngularJS webapp中,我用一个过滤器拆分了一个从JSON得到的字符串我无法修改:现在整个字符串(日期+小时)被分成一个由2个元素组成的数组(array [0] = date,array [1] =小时),但我不知道如何只获取HTML中的第一个。

我不能将单个元素作为范围传递,我不能使用ng-repeat,因为我必须为每个元素分配不同的类。

HTML:

<span class="time">{{manif.avvenimento.data | split:' '}}</span>

以HTML格式打印的结果:

["03/02/2014","20:40"]

我需要得到这样的东西:

<span class="A">03/02/2014</span>
<span class="B">20:40</span>

谢谢大家!

3 个答案:

答案 0 :(得分:2)

我会将两个字符串放在一个单独的对象中。这样你就不会在每个摘要周期中执行字符串拆分,这对性能更有利。

在您的控制器中:

$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>

答案 1 :(得分:0)

最有可能这样做:

<span class="date">{{ (manif.avvenimento.data | split:' ')[0] }}</span>
<span class="time">{{ (manif.avvenimento.data | split:' ')[1] }}</span>

答案 2 :(得分:0)

要从后端获取JSON数组,请将以下内容添加到AngularJS控制器:

var dtRes = $resource('URL to your resource object');
$scope.dtArr = dtRes.query();

然后使用以下方法在HTML中迭代它:

<li data-ng-repeat="dt in dtArr">
    <span>{{dt.date}} {{dt.time}}</span>
</li>