【发布时间】:2015-04-02 14:48:00
【问题描述】:
我有一个包含 Json 数据的字符串,该字符串由另一个脚本(比如说脚本 A)生成。我必须使用 ng-model 访问这些数据。所以我尝试的是我创建了一个如下所示的输入字段并将 ng-model 附加到它。
`<input type="text" id="check" name="jsonName" ng-model="saveJson"></input>`
现在我所做的是使用脚本 A 将 Json 数据存储到此输入字段中 如下所示
document.getElementById("check").value = saveJson;
现在为了将这些数据访问为 angular,我创建了一个控制器,例如
angular.module('myapp').controller('formDataController', ['$scope',
function($scope){
$scope.saveForm = function(){
console.log($scope.saveJson);
}
}
]);
其中 saveForm 是在使用 ng-click 按钮单击时调用的方法
现在的问题是你直到在输入字段中存在任何交互,$scope.saveJson 会给出 undefiend 值。 但是当我在输入字段中写一些东西时,console.log 会显示带有类型值的 json 数据。
请帮忙。
【问题讨论】:
-
您应该始终从您的控制器设置范围变量,如
$scope.saveJson = saveJson。在 Angular 之外设置范围变量将不会运行摘要循环,范围变量将不会更新..您需要执行$scope.$apply()来获取所有范围变量的更新值 -
我应该如何使用这个 $scope.$apply()
-
你可以使用
if(!$scope.$$phase) $scope.$apply(),但就角度而言,这是一个糟糕的代码。' -
我用过但没用
-
你应该在访问 $scope 之前在控制器内部进行操作
标签: javascript json angularjs