Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 ng如果在ng上重复调用函数_Javascript_Angularjs_Angularjs Ng Repeat_Ng Class_Angular Ng If - Fatal编程技术网

Javascript ng如果在ng上重复调用函数

Javascript ng如果在ng上重复调用函数,javascript,angularjs,angularjs-ng-repeat,ng-class,angular-ng-if,Javascript,Angularjs,Angularjs Ng Repeat,Ng Class,Angular Ng If,我有一个小家伙: 我有一个ng repeat,它调用一个函数并得到.output的结果,它可以是true,也可以是false。但是,如果未返回这些值,则默认值为x 我想尝试的是对ng repeat值执行ng if,以便: if outcome is true, show icon-true. if outcome is false, show icon-cross. if outcome is x, show icon-blank. HTML: {[{getData(contents[ite

我有一个小家伙:

我有一个ng repeat,它调用一个函数并得到.output的结果,它可以是true,也可以是false。但是,如果未返回这些值,则默认值为x

我想尝试的是对ng repeat值执行ng if,以便:

if outcome is true, show icon-true.
if outcome is false, show icon-cross.
if outcome is x, show icon-blank.
HTML:


{[{getData(contents[item.\u id].contentHistory,year,month.n}]}

试试这个。定义一个结果变量并在函数中初始化它

  $scope.outcome = "";
  $scope.getData = function(parameters){
    if(true)
       $scope.outcome = 'show icon-true';
    if(false)
        $scope.outcome = 'show icon-cross';

    }



<div ng-repeat="month in months">
    <i ng-class="{'show icon-true': outcome == true, 'show icon-cross':outcome == false,}"></i>
</div>
.a{
颜色:红色;
}
.b{
颜色:蓝色;
}

{{item.name}


试试这个。定义一个结果变量并在函数中初始化它

  $scope.outcome = "";
  $scope.getData = function(parameters){
    if(true)
       $scope.outcome = 'show icon-true';
    if(false)
        $scope.outcome = 'show icon-cross';

    }



<div ng-repeat="month in months">
    <i ng-class="{'show icon-true': outcome == true, 'show icon-cross':outcome == false,}"></i>
</div>
.a{
颜色:红色;
}
.b{
颜色:蓝色;
}

{{item.name}

试试这个

<div ng-repeat="month in months">
    <i ng-class="{getData(contents[item._id].contentHistory,year,month.n)==true ?'show icon-true': getData(contents[item._id].contentHistory,year,month.n)==false?'show icon-cross':'show icon-blank'}"></i>
</div>

我希望这对你有帮助。

试试这个

<div ng-repeat="month in months">
    <i ng-class="{getData(contents[item._id].contentHistory,year,month.n)==true ?'show icon-true': getData(contents[item._id].contentHistory,year,month.n)==false?'show icon-cross':'show icon-blank'}"></i>
</div>


我希望这将对您有所帮助。

如果您只需要两个结果-真、假 然后您应该使用
ng hide
ng show

否则使用ng开关

<ANY ng-switch="CALL YOUR EXPRESSION">
  <ANY ng-switch-when=true> INSERT TRUE-ICON CODE HERE</ANY>
  <ANY ng-switch-when=false> INSERT FALSE-ICON CODE HERE</ANY>
  <ANY ng-switch-default>INSERT DEFAULT-ICON CODE HERE</ANY>
</ANY

在此处插入真实图标代码
在此处插入假图标代码
在此处插入默认图标代码

如果您只需要两个结果-true、false 然后您应该使用
ng hide
ng show

否则使用ng开关

<ANY ng-switch="CALL YOUR EXPRESSION">
  <ANY ng-switch-when=true> INSERT TRUE-ICON CODE HERE</ANY>
  <ANY ng-switch-when=false> INSERT FALSE-ICON CODE HERE</ANY>
  <ANY ng-switch-default>INSERT DEFAULT-ICON CODE HERE</ANY>
</ANY

在此处插入真实图标代码
在此处插入假图标代码
在此处插入默认图标代码

您可以通过嵌套三元运算符来检查所有三个条件

<div ng-repeat="month in months">
<i ng-class="{getData(contents[item._id].contentHistory,year,month.n)==true ?'show icon-true': (getData(contents[item._id].contentHistory,year,month.n)==false ? 'show icon-cross' : 'show icon-blank')}"></i>


您可以使用三元运算符通过嵌套来检查所有三个条件

<div ng-repeat="month in months">
<i ng-class="{getData(contents[item._id].contentHistory,year,month.n)==true ?'show icon-true': (getData(contents[item._id].contentHistory,year,month.n)==false ? 'show icon-cross' : 'show icon-blank')}"></i>



谢谢,结果来自哪里?我正在使用{[{getData(contents[item.\id].contentHistory,year,month.n)}]}来获取我的结果。@shershen你是对的,这不是ng类语法。@hadiJZ-下一票是在你的更新之前,你还没有说结果来自哪里谢谢,结果来自哪里?我正在使用{[{getData(contents[item.\u id].contentHistory,year,month.n)}]}获取结果。@shershen您是对的,这不是ng类语法。@hadiJZ-下一票是在您的更新之前,而且您没有说明结果来自何处。
x
?它是一根绳子吗?@mgilson是的,它是。。查看一下储物箱中的控制器,您需要与
'x'
进行比较,而不是
x
,因为它不是一个变量,而是一个值。并关闭
getData
调用的圆括号。如果更正了,代码工作正常。你的风格/图标有些问题,我没有深入探讨,试着用标签代替图标。工作。什么是
x
?它是一根绳子吗?@mgilson是的,它是。。查看一下储物箱中的控制器,您需要与
'x'
进行比较,而不是
x
,因为它不是一个变量,而是一个值。并关闭
getData
调用的圆括号。如果更正了,代码工作正常。你的风格/图标有些问题,我没有深入探讨,试着用标签代替图标。这完全忽略了op提到的第三个选项,因此该解决方案在第一个选项中遗漏了主题place@PatrickKelleter我已相应地更新了我的答案。请现在检查。这更好,因为它现在适合这个问题,但性能较差,因为它必须调用函数两次。但至少现在这是一个正确的答案,即使不是最好的:)谢谢你的答案,但是调用函数3次是非常低效的这总是默认为空白-你已经测试过了吗?这完全排除了op提到的第三个选项,因此,这个解决方案在第一个阶段就没有抓住主题place@PatrickKelleter我已相应地更新了我的答案。请现在检查。这更好,因为它现在适合这个问题,但性能较差,因为它必须调用函数两次。但至少现在这是一个正确的答案,即使不是最好的:)谢谢你的答案,但是调用函数3次是非常低效的这总是默认显示为空白-你已经测试过了吗?你有一个有效的例子吗?我似乎无法让开关工作。不要从angular网站复制和粘贴代码。考虑到我提供了一个plunker,这表明我已经查阅了angular文档。对不起,但是你的plunker有很多错误,表明你没有查阅angular文档。您需要与
'x'
进行比较,而不是
x
,因为它不是一个变量,而是一个值。并关闭getData调用的圆括号。如果更正了,代码工作正常。你的图标有点问题,我没有深入,试着用标签代替图标。你有一个有效的例子吗?我似乎无法让开关工作。不要从angular网站复制和粘贴代码。考虑到我提供了一个plunker,这表明我已经查阅了angular文档。对不起,但是你的plunker有很多错误,表明你没有查阅angular文档。您需要与
'x'
进行比较,而不是
x
,因为它不是一个变量,而是一个值。并关闭getData调用的圆括号。如果更正了,代码工作正常。你的图标有点问题,我没有深入,试着用标签代替图标。工作。