如何使用Angularjs显示对象属性

时间:2015-11-16 07:52:43

标签: angularjs

行。开始了。我试图用MEAN构建简单的应用程序。当我用角度{{object}}显示我的对象时,它会在我的页面上打印对象,但是当我尝试打印对象属性{{object.property}}时,没有任何反应。

以下是代码的相关部分。你如何打印对象的属性?

蒙戈

> db.myapp.find().pretty()
{
    "_id" : ObjectId("564983745dc4b169cba8c9fc"),
    "type" : "balance",
    "value" : "111"
}

服务器代码

app.get('/myapp', function (req,res) {
    db.myapp.find(function(err,docs){
        res.json(docs);
    });
});

控制器

$http.get('/myapp').success(function (response) {
        $scope.balance = response;
        });

HTML

<p>{{balance}}</p>
<p>{{balance.type}}</p>
<p>{{balance.value}}</p>

以上HTML的结果如下。

[{"_id":"564983745dc4b169cba8c9fc","type":"balance","value":"111"}]

3 个答案:

答案 0 :(得分:1)

正如JSON所示,平衡不是一个对象。它是一个包含单个元素的数组,它是一个对象。所以你需要

{{ balance[0].type }}

打印类型。

如果REST服务应该返回单个对象,则修复它。如果它确实应该返回几个,那么视图应该有一个循环来显示所有元素:

<div ng-repeat="item in balance">
    {{ item.type }}
</div>

答案 1 :(得分:0)

您的响应对象似乎是一个数组(这就是它在方括号中呈现的原因)。

在这种情况下,请在控制器中使用$scope.balance = response[0]或在标记中使用{{balance[0].type}}

答案 2 :(得分:0)

<强> HTML

<section class="content row" ng-repeat="item in data">
    Name: {{item.name}} <br/>
    BaseValue: <input type="text" ng-init="item.oldBaseValue = item.baseValue" ng-model="item.baseValue" ng-change="baseValueChange(item.oldBaseValue, item.baseValue); item.oldBaseValue = item.baseValue"/>
</section>

<强> CONTROLLER

$scope.baseValueChange = function(oldVal, newVal) {
    console.log("base value change", oldVal, newVal);
}