【问题标题】:Why Nested curly braces in angular doesn't work?? What is alternative solution for it?为什么角度嵌套的花括号不起作用?什么是替代解决方案?
【发布时间】:2017-06-08 10:33:57
【问题描述】:

我有一个 json 对象

"blog1":{ 
"blogid":"1", 
"body":"sometext"
  "IMG":"URL of image"
    }

我正在尝试使用 ng 样式访问此对象 IMG 元素以将其设置为 div 的背景 IMG,如下所示

<Div ng-controller="controller as ctrl">
       <div ng-style="background-image:URL('{{ctrl.object.blog{{ctrl.blogId}}.IMG}}');" >

我的控制器看起来像(粗糙)

App.controller('controller', function (){
this.object= $firebaseObject();

this.blogId= $routeParams.blogId;

});

请注意,带有 ng 样式的 div 包含嵌套的角度表达式,并且它们不进行评估。有没有其他解决方案可以实现这一点。

注意:这是单页应用程序,所以根据 URL 中的博客 ID,我想显示图像。我正在为 SPA 使用角度路由。

【问题讨论】:

  • 你不必使用花括号,你可以使用 [ ]。 {{object.blog[blogId].IMG}}
  • 我不必提 ctrl.??
  • 我不知道您是如何在视图中定义控制器的。 ng-controller="ctrl" ?
  • 是的,我把它定义为controller as ctrl ...代码不完全一样。U cn明白什么
  • 那么你的控制器定义是错误的。如果您有 ng-controller="controller as ctrl" 那么您的 App.controller 应该与该名称匹配。但是,是的,您必须使用 ctrl.whatever 来打印变量。

标签: angularjs firebase firebase-realtime-database expression ng-style


【解决方案1】:

要将变量用作索引,请按照以下方式操作

控制器:

$scope.myVar = 'something';
$scope.myObj = {something: {img: 'something else'}};

查看:

{{myObj[myVar].img}}

在你的情况下:

{{ctrl.object.blog[ctrl.blogId].IMG}}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-17
    相关资源
    最近更新 更多