Javascript AngularJs模板中的$scope变量快捷方式

Javascript AngularJs模板中的$scope变量快捷方式,javascript,angularjs,angularjs-scope,angular-template,Javascript,Angularjs,Angularjs Scope,Angular Template,在我的控制器中,我分配: $scope.currentThing.data 在我的模板中,有时我需要 currentThing.data.response[0].hello 有时 currentThing.data.otherStuff[0].goodbye //or currentThing.data.anotherThing[0].goodMorning 所以我想知道是否有可能直接在模板中为这些变量创建一个快捷方式,比如: {{response = currentThing.data.

在我的控制器中,我分配:

$scope.currentThing.data
在我的模板中,有时我需要

currentThing.data.response[0].hello
有时

currentThing.data.otherStuff[0].goodbye
//or
currentThing.data.anotherThing[0].goodMorning
所以我想知道是否有可能直接在模板中为这些变量创建一个快捷方式,比如:

{{response = currentThing.data.response[0]}}
这样我就可以像这样使用
{{response.hello}


通常,是否可以从模板中分配临时变量?我不需要任何数据绑定,我只需要它们来生成模板,然后它们就可以永远消失了

您可以使用ngInit

虽然似乎不赞成在ngRepeat之外使用它

<div ng-init="myvar = currentThing.data.response[0]">
    <span>{{myvar.hello}}</span>
</div>

{{myvar.hello}

我没有这样测试过它,但这是我能想到的最接近解决您问题的方法。

您可以在控制器中这样做:

HTML:


{{temp.response}json}

是的,可以使用如下语法

{{ variable = ( expression ) }}
HTML模板中的任意位置(不仅仅是一些人建议的
nginit

在需要多次使用计算变量的情况下,它非常有用-不需要每次都计算

一些例子

<!-- can use it before -->
<p> Calculated value is {{calculated}} </p>

<div ng-repeat=" item in calculated = ( allItems | filter1 | filter2 | filter3 ) ">
   {{item}} 
</div>

<!-- can use it after-->
<p> Calculated value is still {{calculated}} </p>

计算值为{computed}}

{{item}} 计算值仍然是{computed}}

编辑:那么在你的情况下呢
{response=(currentThing.data.response[0])}

正如他们所说:
ngInit唯一合适的用法是对ngRepeat的特殊属性进行别名处理
我很想使用这个解决方案,但在我的情况下它似乎不起作用:
{response=(currentThing.data.response[0])}
抛出语法错误,无法识别的表达式
{{ variable = ( expression ) }}
<!-- can use it before -->
<p> Calculated value is {{calculated}} </p>

<div ng-repeat=" item in calculated = ( allItems | filter1 | filter2 | filter3 ) ">
   {{item}} 
</div>

<!-- can use it after-->
<p> Calculated value is still {{calculated}} </p>