我的输入字段为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)
未定义。为什么?我做错了什么?
答案 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做到这一点。它有效。