我有一个控制器在搜索结果上返回一个JSON onbject,我使用ng-repeat来列出它们。我使用一个带有与该特定对象的ID绑定的ng-click事件的按钮。
<div ng-controller="Gid"><button ng-click="getGid(val['gid'])">Test</button></div>
此div位于执行ng-repeat的较大控制器内。不确定它是否有所作为,但我对此表示怀疑。
然后在'Gid'控制器中我有'getGid()'函数,它将id作为参数。
.controller('Gid', function($scope, $http, $location){
$scope.getGid = function(id){
$http({
url: "http://127.0.0.1:5000/places/search_places",
method: "POST",
data: null
}).then(function(response){
// currently I'm just sending null to test this so I know the
// response comes back bad
}).catch(function(response){
$scope.gid = id;
console.log($scope.gid); // I can see the correct id in console
$location.path('/view1')
})
}
})
在此之后,我会认为一切都应该好。我可以在控制台中看到正确的ID确实出现了。但是,当路径更改为view1
时<div ng-controller="Gid">
1 - {{ gid }}
</div>
gid变量保持为空。我已经尝试将其设置为null以从控制器的顶部开始,这没有任何区别。我在没有HTTP调用的情况下尝试过,没有任何区别。但是无论如何我都需要这个函数才能让这个函数顺利进行。
那是什么给出的?当我可以清楚地看到它在控制台中更新时,为什么我的变量在视图方面没有得到更新。