0

我有一个用 jquery 编写的小应用程序,想把它翻译成 angularjs。

但是我需要一些关于是否可以使用 angularJs 的建议。在我的应用程序中,我进行了一些 ajax 调用,检索一个 Json,然后解析它并注入到 dom 中。

这里的问题是我的 json 属性是:简单的字符串、数组或嵌套的 json 对象。

因此,当我解析 json 时,我会对其进行格式化:例如,我遍历数组并构建数据表,或者解析字符串并获取字符串的长度。然后我将所有内容输出到dom。

这在 jquery 中有点冗长,但使它成为可能。我想知道我是否可以用 AngularJs 制作类似的东西。

$.each(data.ALLIMG, function(i, image) {
    if(image.alt){
        $("#imagesDetail").append("<li>ALT:" + image.alt + " SRC: ");
        $("#imagesDetail").append(image.src + "</li>");
        totalAltImg++;
    }
});
$("#text").append("<p>" + data.TEXT + "</p>");
$("#text").append("<p><b>Length: </b>" + data.TEXT.LENGTH + " character(s)</p>");

根据我对角度的了解,我应该使用类似的东西,{{text}}但如果它是一个数组,我如何输出一个表?还是列表?

4

2 回答 2

0

这是一个完整的工作示例。您可以使用ng-show该属性来测试该属性是否存在,尽管在此示例中它会呈现隐藏状态,但它比过滤器要简单得多。我还提供了一个简单的过滤器完整示例。data.TEXT 我只是假设您想计算该文本的字符数。

演示: http: //plnkr.co/br2M4GXrDENd4rLkDBho

<!-- with ngshow -->
<ul id="imagesDetail">
  <li ng-repeat="image in data.ALLIMG" ng-show="image.alt">
     ALT: {{image.alt}} SRC: {{image.src}}
  </li>
</ul>
<!-- with filter see below -->
<ul id="imagesDetail2">
  <li ng-repeat="image in data.ALLIMG | filter:hasAlt" >
    ALT: {{image.alt}} SRC: {{image.src}}
  </li>
</ul>

<div id="text">
  <p>{{data.TEXT}}</p>
  <p><b>Length: </b> + {{data.TEXT.length}} character(s)</p>
</div>

控制器过滤器:

 $scope.hasAlt = function(image) {
  return image.alt!==undefined;
 }
于 2013-05-05T15:40:01.973 回答
0

应该看起来像

<ul>
  <li ng-repeat='image in data.ALLIMG'> ALT: {{image.alt}} {{image.src}}</li>
</ul>

如果您需要过滤掉无效数据(就像您在示例中所做的那样),您可以在控制器中定义过滤谓词:

<ul>
  <li ng-repeat='image in data.ALLIMG| filter:properImages'> 
     ALT: {{image.alt}} {{image.src}}</li>
</ul>
于 2013-05-04T01:22:53.087 回答