AngularJs:选择绑定和http请求



我是angular 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服务加载select选项,所有选项都可以正常工作。所以我想我在加载选择菜单时遇到了问题。

我的代码出了什么问题?

谢谢。

控制器中。。。

将"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);
        });
});

顺便说一句,我想知道你的结果.forEach是否可以通过使用concat函数来改进:

$scope.services = $scope.services.concat(result);

让你的代码像这样:

$http.get("test").success(function (result) {
   $scope.services = $scope.services.concat(result);
});

相关内容

  • 没有找到相关文章

最新更新