【问题标题】:Function does not run in angularjs file函数不在 angularjs 文件中运行
【发布时间】:2017-07-04 11:35:31
【问题描述】:

我的代码来自 Angular js 文件,

ctrl.issuesGridConfig = {
        modelSetName: 'issues',
        serializerChildName: 'issues', //will be prepended with "__" before fields for validation
        actions: {
            addRow: {
                active: function(row) {return !ctrl.readOnly;},
                callback: addIssueRow,
            },
            editRow: {
                active: function(issue){ return issue.provider_issue_code;} ? true : false,
                label:  "View test" : "Edit",
                callback: function(issue){
                    $location.path('/issue/' + issue.provider_issue_code);
                }
            },
            deleteRow: {
                active: function(row) {return !ctrl.readOnly;},
                callback: function(row){
                    _.pull(ctrl.activity.issues, row);
                }
            }
        },

我的问题是 - 在 Editrow 下我正在运行函数(问题)。它在 callback: 中工作正常,但对于 active: 它不起作用。我在 callback: 下获得了 issue.provider_issue_code 的值,但在 active: 下却没有。仅当 issue.provider_issue_code 具有一定价值时,我才想让 active = true 。请让我知道这里出了什么问题。

【问题讨论】:

  • function(issue){ return issue.provider_issue_code;} ? true : false 这行对我来说没有任何意义。您正在定义一个函数,然后测试它是否存在,如果存在,则返回 true,否则返回 false。但它确实存在,因为您正在精确定义它,所以active 将永远是真的......

标签: javascript angularjs angular-controller


【解决方案1】:

那里的代码错误,由于您的拼写错误,active 始终为真,在您的代码中,您使用三元运算符分配 active : active = condition ?真假; (函数就是那里的条件)

active: function(issue){ return issue.provider_issue_code;} ? true : false,

应该是

active: function(issue){ return issue.provider_issue_code ? true : false;} ,

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

【讨论】:

  • 谢谢,是的,是错字。而且我在运行时没有遇到任何错误,所以很困惑出了什么问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 1970-01-01
相关资源
最近更新 更多