Javascript 角度条件格式json
我有一个用jquery编写的小应用程序,想把它翻译成angularjs 但我需要一些建议,看看能不能和angularJs合作。在我的应用程序中,我进行一些ajax调用,检索一个Json,然后解析它并注入dom 这里的问题是我的json属性是:简单字符串、数组或嵌套json对象 因此,当我解析json时,我将其格式化:例如,我循环数组并构建一个数据表,或者解析字符串并获取字符串的长度。然后我将所有数据输出到dom 这在jquery中有点冗长,但要使之成为可能。我想知道我是否可以用AngularJs做类似的东西Javascript 角度条件格式json,javascript,angularjs,Javascript,Angularjs,我有一个用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>");
$。每个(data.ALLIMG,函数(i,图像){
if(image.alt){
$(“#imagesDetail”).append(“ALT:+image.ALT+”SRC:”);
$(“#imagesDetail”).append(image.src+” ”;
totalAltImg++;
}
});
$(“#text”)。追加(“”+data.text+””;
$(“#text”)。追加(长度:“+data.text.Length+”字符“”;
在我的角度知识中,我应该使用类似于
{{text}}
的东西,但是如果它是一个数组,我如何输出一个表呢?还是列表?应该类似于
<ul>
<li ng-repeat='image in data.ALLIMG'> ALT: {{image.alt}} {{image.src}}</li>
</ul>
- ALT:{{image.ALT}{{image.src}
如果您需要过滤掉无效数据(就像您在示例中所做的那样),您可以在控制器中定义一个过滤谓词:
<ul>
<li ng-repeat='image in data.ALLIMG| filter:properImages'>
ALT: {{image.alt}} {{image.src}}</li>
</ul>
-
ALT:{{image.ALT}{{image.src}}
下面是一个完整的工作示例。您可以使用ng show
来测试属性是否存在,尽管在本例中它会呈现为隐藏,但它比过滤器简单得多。我还提供了一个简单的过滤器完整示例。data.TEXT我以为你想数一数文本中的字符
演示:
对于要使用的数组,有一件事需要注意,控制器通常不应该执行任何Dom操作。
<!-- 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;
}