我尝试了以下内容:
$scope.qs = {};
$scope.qh = {};
$scope.qv = {};
var qs = $scope.qs;
var qh = $scope.qh;
var qv = $scope.qv;
$scope.getQuestionHeaders = function () {
var url = '/api/Test/GetQuestionHeaders?id=1';
$http.get(url)
.success(function (data, status, headers, config) {
qh = data.testQuestionHeaders;
qs = qh[0];
我的数据被分配给qs,我可以看到其他字段,例如qs.i,qs.q等。但是当我使用chrome开发人员工具时,我注意到没有为$ scope.qs分配任何内容
答案 0 :(得分:1)
这是正确的。
你基本上是这样做的:
foo.someProp = 1;
var bar = foo.someProp;
bar = 3;
您希望foo.someProp
为3吗?如果要更新$scope.qs
引用,则需要直接执行,否则只需更改本地变量引用即可。您可以修改qs中的项目:
qs.foo = 1;
console.log($scope.qs.foo);
答案 1 :(得分:1)
您正在覆盖变量qh
和qs
,因此他们放弃了之前的引用。如果要保持两个vars同步,则必须执行此操作:
$scope.qh = qh = data.testQuestionHeaders;
$scope.qs = qs = qh[0];
更新属性不会影响变量引用:
qh.witness = true;
$scope.qh.witness === qh.witness === true; // true