Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 如果绑定为空,则为角度默认值_Javascript_Angularjs - Fatal编程技术网

Javascript 如果绑定为空,则为角度默认值

Javascript 如果绑定为空,则为角度默认值,javascript,angularjs,Javascript,Angularjs,我看到过一个类似的问题,并一直追问到发球台 我的对象如下所示: { "image": { "icon_url": "http://static.giantbomb.com/uploads/square_avatar/9/93770/2496414-dying-light-2013523175751_8.jpg", "medium_url": "http://static.giantbomb.com/uploads/scale_medium/9/93770/2496414-dy

我看到过一个类似的问题,并一直追问到发球台

我的对象如下所示:

{
  "image": {
    "icon_url": "http://static.giantbomb.com/uploads/square_avatar/9/93770/2496414-dying-light-2013523175751_8.jpg",
    "medium_url": "http://static.giantbomb.com/uploads/scale_medium/9/93770/2496414-dying-light-2013523175751_8.jpg",
    "screen_url": "http://static.giantbomb.com/uploads/screen_medium/9/93770/2496414-dying-light-2013523175751_8.jpg",
    "small_url": "http://static.giantbomb.com/uploads/scale_small/9/93770/2496414-dying-light-2013523175751_8.jpg",
    "super_url": "http://static.giantbomb.com/uploads/scale_large/9/93770/2496414-dying-light-2013523175751_8.jpg",
    "thumb_url": "http://static.giantbomb.com/uploads/scale_avatar/9/93770/2496414-dying-light-2013523175751_8.jpg",
    "tiny_url": "http://static.giantbomb.com/uploads/square_mini/9/93770/2496414-dying-light-2013523175751_8.jpg"
  },
  "name": "Dying Light",
  "original_game_rating": null,
  "original_release_date": null,
  "objectID": "346569380"
}
我将左侧表达式用括号括起来,但对于年份为
null
的项目,它不显示“TBA”

<span>{{ (getDate(hit.original_release_date) | date:'yyyy') || 'TBA' }}</span>
以及
dateToISO
过滤器:

.filter('dateToISO', function() {
  return function(input) {
    var dateTime = input.split(" ");
    var date = dateTime[0];
    var datePartials = date.split("-");
    var time = dateTime[1];
    var timePartials = time.split(":");
    var formattedDate = new Date();
    formattedDate.setFullYear(datePartials[0]);
    formattedDate.setMonth(datePartials[1]-1);
    formattedDate.setDate(datePartials[2]);
    formattedDate.setHours(timePartials[0]);
    formattedDate.setMinutes(timePartials[1]);
    return formattedDate;
  };
})
试试这个:

{{hit.original_release_date ? (hit.original_release date | date:'yyyy') : 'TBA'}}

还实现默认过滤器

app.filter('default', [function(){
  return function(value, def) {
    return value || def;
  };
}]);
并将其用作:

<span>{{getDate(hit.original_release_date) | date:'yyyy' | default: 'TBA'}}</span>
添加:

在angular中,您必须始终执行以下操作:

<span ng-if="hit.original_release_date">{{getDate(hit.original_release_date) | date:'yyyy'}}</span>
<span ng-if="!hit.original_release_date">TBA</span>
{{getDate(hit.original_release_date)}日期:'yyyy'}
TBA

AngularJS版本?你能显示
getDate
函数吗?@tasseKATT用
getDate
函数更新了问题。使用Angular 1.2.8。目前无法复制它。您是否也可以显示自定义的
dateToISO
筛选器?您确定返回了
null
?可能是它的字符串
'null'
?也实现
默认值
过滤器。并将其用作
。|日期:'yyyy'|默认值:'TBA'
打印到页面时显示为“未定义”。仍然返回为“未定义”。奇怪的没有办法分离右侧表达式并在左侧使用函数吗?您的
日期过滤器在哪里?它位于我的模块之后<代码>角度.module('myApp',['ngRoute','ngSanitize'])。过滤器('dateToISO',函数(){…
.no
dateToISO
date
。它为您提供了
yyyy
…无论如何,请在答案的底部查看解决问题的简单方法。啊,我想这是另一种方法。我想这会起作用,但我也想知道为什么我不能用函数来实现lh-rh表达式。
.filter('dateToISO', function() {
  return function(input) {
    if (!input || !input.match(/^\d{2}-\d{2}-\d{4} \d{2}\:\d{2}\:\d{2}$/)) return;
    var dateTime = input.split(" ");
    var date = dateTime[0];
    var datePartials = date.split("-");
    var time = dateTime[1];
    var timePartials = time.split(":");
    var formattedDate = new Date();
    formattedDate.setFullYear(datePartials[0]);
    formattedDate.setMonth(datePartials[1]-1);
    formattedDate.setDate(datePartials[2]);
    formattedDate.setHours(timePartials[0]);
    formattedDate.setMinutes(timePartials[1]);
    return formattedDate;
  };
})
<span ng-if="hit.original_release_date">{{getDate(hit.original_release_date) | date:'yyyy'}}</span>
<span ng-if="!hit.original_release_date">TBA</span>