Angularjs - 使用$ scope值(动态)加载JSON数据将返回undefined

时间:2018-03-06 17:21:57

标签: javascript angularjs

我的输入字段为ng-model,如下所示。

<div ng-app="myApp" ng-controller="GlobalCtrl">
    <input type="text" ng-model="FirstName">
        {{FirstName}}
</div>

现在我的控制器console.log $scope.FirstName是我在视图中给出的正确值。

但是当我尝试将$scope加载到 JSON 类似的结构中时,我得到了未定义。

myApp.controller('GlobalCtrl', function($scope) {

    $scope.loadedata = {"asd":$scope.FirstName};
    console.log($scope.FirstName); //this is fine
    console.log($scope.loadedata); //but this is undefined.
});

现在$scope.loadedata) 未定义。为什么?我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的代码段有一些内容。您正在使用输入栏,您的DOM正在尝试呈现未定义的FirstName。有关输入和双向绑定模板 - 控制器关系的正确使用,请参阅此演示。

https://material.angularjs.org/latest/demo/input

另外,你在哪里调用console.log()?我假设在控制器调用之后?

答案 1 :(得分:1)

我的观点:

<div ng-app="myApp" ng-controller="GlobalCtrl">
<input type="text" ng-model="req.FirstName">
    {{req.FirstName}}
</div>

我的控制器:

myApp.controller('GlobalCtrl', function($scope) {
$scope.req = {};
console.log(JSON.stringify($scope.req));
});

经过长时间的研究,我发现没有序列化可以做得更好,你可以使用ng-model做到这一点。它有效。