javascript - 用于检索 json 数据的 Angular Controller

标签 javascript json angularjs node.js

这里我实际上是在尝试获取 json 数据并使用 Angular Controller 将它们显示在 jade 模板上。

Controller : processJson.js

 var getJson = angular.module('getJson', []).controller('controller1',   function ($scope, $http) {
var url = '/fields/fieldlist';
console.log(url);
$http.get(url).success(function (data) {
    $scope.posts = data;
  });

 });

这不会将 json 数组解析为 jade 模板

字段.js

var express=require('express');
var router =express.Router();


 router.get('/fieldlist',function(req,res){
  var db=req.db;
  var collection=db.get('domlist');
   collection.find({},{},function(e,docs){
    res.json(docs); 
  });  
});

module.exports=router;

这成功返回了一个json数组对象。

这是我的 Jade 模板

html
head


body 
     div(ng-app='getJson')
        div(ng-controller='controller1')
            div(ng-repeat='post in posts')
                div(ng-switch-when='text')

                    input(type='text' id='{{post.id}}' ng-model='post.value' placeholder='{{post.placeholder}}')

                    block content

最佳答案

这里有几件事:

不要在 Controller 中使用 $http。 Ajax 请求和一般数据发送/检索应该进入您注入(inject) Controller 的服务或工厂。

在这种情况下,您应该考虑编写一个包含 getFields() 方法的 fieldService 并从您的 Controller 调用它。

由于我高度怀疑这是您问题的原因,我将指出您的示例中的问题:

  • 您对 $http 的使用很容易让人头疼,如果没有错误的话。您可能对 $http's documentation 感兴趣,其中解释了最推荐的使用方法。还要考虑捕获请求中的错误,以防出现任何问题并阻止显示数据。

  • 在您的模板中,您使用的是 ng-switch-when 属性,而没有任何父 ng-switch。我当然不是专家,但我不确定它是否会起作用。如果您希望您的 div 在“文本”为真时显示,请考虑使用 ng-if 或 ng-show,甚至在您的 ng-repeat 中使用过滤器。

  • 我还假设“文本”是您忘记放入示例中的范围变量。

  • 您的 url 在两个示例中都不相同,您确定它们都是正确的吗?

抱歉,我没有时间尝试重现您的问题。我希望至少其中的一点可以帮助您了解您做错了什么。

关于javascript - 用于检索 json 数据的 Angular Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31962635/

相关文章:

javascript - 显示内联不起作用

javascript - 在使用 get() 检索选择后使用 jQuery 确定所选选项

json - 使用gulp修改json文件

php - 如何用php将json数据转成html?

javascript - 将 Excel 文件转换为 JSON : design of JSON code check

css - Angular Material App 布局

javascript - React-admin:如何在使用 <Datagrid> 时将列居中?

javascript - 更改 HTML 中 <select> 项的宽度

javascript - While 循环在第一次迭代时停止

javascript - 如何在 Angular Material 中的 md-backdrop 后面接收 ng-click 事件