我是角度js的初学者,我遇到了http请求和绑定选择的问题。
我在表格中有一个选择菜单,如下所示:
$http.get("test").success(function (result) {
result.forEach(function (e) {
services.push(e)
});
});
我在html中使用服务变量(我使用select2作为选择菜单):
<select id="service" ng-model="requestCtrl.service" multiple ui-select2 data-placeholder="Services sans cache ..." class="default-select" >
<option ng-repeat="service in requestCtrl.services" value="{{service}}" >{{service}}</option>
</select>
现在一切正常。
我将服务变量保存在localStorage中,然后在页面加载中恢复它。
但是,在这一步中,我遇到了问题。 变量从localStorage很好地加载,但它不会出现在select中,它是空的。 如果我没有从http服务加载选择选项,那么一切正常。 所以我认为选择菜单加载有问题。
我的代码有什么问题?
感谢。
答案 0 :(得分:0)
在控制器 ...
中将“services”var声明为$scope
的一部分。像这样:
$scope.services = [];
在 HTML
中<option ng-repeat="service in services" ....
当“vars”与scope
相关联时,为简化角度变化的答案会影响UI。我在$http.get
和之后services.push(e)
找不到该关联。这是我期望看到的:
$http.get("test").success(function (result) {
result.forEach(function (e) {
$scope.services.push(e);
});
});
在旁注中,我想知道您的result.forEach是否可以通过使用concat
函数来改进:
$scope.services = $scope.services.concat(result);
离开你的代码:
$http.get("test").success(function (result) {
$scope.services = $scope.services.concat(result);
});