Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:将字符串拆分为数组,获取第一个元素_Javascript_Html_Arrays_Angularjs_Scope - Fatal编程技术网

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

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

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

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

HTML:

我需要这样的东西:

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