我正在尝试ng-switch
在控制器变量上使用,但它没有按预期方式工作,或者我丢失了一些东西。我想打开在user_id
控制器中定义的。
这是一个小矮人
控制器
$scope.user_id = "5";
$scope.messages = [
{id: 1, body: "Scope User Message", sent_messageable_id: 5},
{id: 2, body: "Other Message", sent_messageable_id: 6}
]
的HTML
<div ng-repeat="message in messages">
<div ng-switch on="message.sent_messageable_id">
<div ng-switch-when="user_id">
<!-- should be getting called but never does-->
{{ message.body }}
</div>
<div ng-switch-default>
{{ message.body }}
</div>
<div
</div>
</div>
您使用ng-switch
的方式有误。您必须与在ng-switch
初始化参数中使用的表达式保持一致。这是正确使用AngularJS doc的开关匹配的正确方法。
<ANY ng-switch="expression">
<ANY ng-switch-when="matchValue1">...</ANY>
<ANY ng-switch-when="matchValue2">...</ANY>
<ANY ng-switch-default>...</ANY>
</ANY>
由于user_id
不是这种表达方式,您的双极杆将无法工作。
我建议您使用ng-if
,这似乎更适合您的情况(如果我了解您要的内容):
<div ng-repeat="message in messages">
<div>
<div ng-if="user_id">
<p>NOW getting called</p>
{{ message.body }}
</div>
<div ng-if="!user_id">
{{ message.body }}
</div>
</div>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句