我发现了ng-init
的意外行为。根据文档The ngInit directive allows you to evaluate an expression in the current scope.
所以我试图有条件地在变量中赋值。这是我的代码
<a ng-href="#" ng-click="flag = !flag;" ng-init="data = (flag == true) ? 'Value For Success' : 'Value for false'; "> {{data}}</a>
如果在表达式中我传递false
,则会将false值赋给变量,如果我传递true
,则会分配真值。我可以通过调用函数来实现它,但我想如果我可以在一行中赋值,那么为什么我需要为此编写函数。请提出我缺少的内容?
检查我的fiddle
答案 0 :(得分:4)
为什么ng-init
?
ngInit的唯一合适用途是用于别名ngRepeat的特殊属性,如下面的演示所示。除了这种情况,您应该使用控制器而不是ngInit来初始化作用域上的值。
请参阅文档。
在你的情况下,
如果您使用ng-init="data = (flag == true) ? 'Value For Success' : 'Value for false'; "
angular,则会创建一个名为data
的范围变量,并根据条件将其初始化为'Value For Success'
或'Value for false'
。 ng-init
只执行一次,因此无法更改data
范围变量。
答案 1 :(得分:0)
您还可以尝试使用ng-case或ng-if,它可以根据您的以下条件为您的{{data}}分配值。
答案 2 :(得分:-3)
ng-bind="{1:'Text One', 2:'Text Two',3:'Text Three'}[variable]"
变量,在这种情况下它是数字的,根据它包含的值,它将加载文本......