Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.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
如何在AngularJS模板中调用标准javascript函数?_Javascript_Angularjs - Fatal编程技术网

如何在AngularJS模板中调用标准javascript函数?

如何在AngularJS模板中调用标准javascript函数?,javascript,angularjs,Javascript,Angularjs,我可以在AngularJS花括号/符号中使用JavaScript函数吗 我已经尝试了下面的代码。如果你取消注释我的JS函数,它们就不起作用了 一些公式:{1+2} 引自: 角度表达式与JavaScript表达式角度表达式是 类似于JavaScript表达式,但有以下区别: 上下文:JavaScript表达式根据全局 窗户。在Angular中,表达式根据范围对象求值 宽恕:在JavaScript中,尝试评估未定义的属性 生成ReferenceError或TypeError。角度、表情 计算允许

我可以在AngularJS花括号/符号中使用JavaScript函数吗

我已经尝试了下面的代码。如果你取消注释我的JS函数,它们就不起作用了


一些公式:{1+2}

引自:

角度表达式与JavaScript表达式角度表达式是 类似于JavaScript表达式,但有以下区别:

上下文:JavaScript表达式根据全局 窗户。在Angular中,表达式根据范围对象求值

宽恕:在JavaScript中,尝试评估未定义的属性 生成ReferenceError或TypeError。角度、表情 计算允许为未定义和空

无控制流语句:不能在角度视图中使用以下语句: 表达式:条件、循环或异常

无函数声明:不能以角度声明函数 表达式,甚至在ng init指令内部

不使用文字符号创建RegExp:无法创建正则表达式 角度表达式中的表达式

不使用新操作符创建对象:不能在中使用新操作符 有棱角的表情

无逗号和Void运算符:不能在 角度表达

过滤器:您可以在表达式中使用过滤器来格式化数据 展示它

如果您想运行更复杂的JavaScript代码,应该将其设置为 方法,并从视图中调用该方法。如果你想 eval()对于角度表达式,请使用$eval()方法

最后一段解释了建议的实现方法


更新:

看起来您正在使用UI网格。表达式不起作用的原因是,此网格的作用域与声明函数的网格的作用域不同。如果要访问控制器的作用域,应使用:

var cellTemplateNotWorks=”\
{{grid.appScope.myFunction(row.entity[col.field])}\
";

在本例中,您可以使用
grid.appScope
访问模板内部的
myFunction
否,在AngularJS中,您可以通过“卷曲克拉斯”调用函数


你不能用那种方式声明函数。

据我所知,你不能在AngularJS中的花括号内有函数。所以如果我能做到这一点,如何调用函数?我看不到任何禁止使用函数调用的规定。那么为什么它们不起作用呢?它们不起作用是因为它不受支持。如果要计算一些涉及函数调用的复杂表达式,只需将此逻辑封装在
$scope
变量上的函数中,然后调用此函数。那么,您的意思是不支持调用标准函数,而支持调用用户定义的函数?是的,没错,您可以调用
$scope
对象上定义的函数。例如,您可以在控制器中定义一个函数:
$scope.myFunction=function(x){return Math.sin(x);}
,然后在表达式中使用此函数:
{{myFunction(12)}
。请查看我的更新。我已经定义了这个函数,并且它起作用了。但它只在简单的
{}
中起作用。如果我在
uigrid
中使用嵌套结构,它仍然不起作用。是否可以导入父上下文或其他内容?
 var cellTemplateNotWorks = "<div \
    class=\"ngCellText\" ng-class=\"col.colIndex()\"><span ng-cell-text>\
    {{grid.appScope.myFunction(row.entity[col.field])}}\
    </span></div>";