【问题标题】:select angularjs not updating titles after http petition选择 angularjs 在 http 请愿后不更新标题
【发布时间】:2016-12-11 16:39:18
【问题描述】:

我之前已经搜索了很多来问这个问题,但我没有找到任何东西。问题是我在服务器的 GET 请求后收到一个 JSON,并正确接收它(我正在检查这个),但选择选项没有重新加载信息。

这是我的代码:

angular.module('app',[])
.controller('SelectController', ['$scope','$http', function($scope, $http) {
  
  $scope.data_info = [
    {id:1, name:'Option A'},
    {id:2, name:'Option B'},
    {id:3, name:'Option C'}
    ];
  $scope.data_model = null;

  $http.get('http://localhost:7800/data_info'{headers: {'Content-Type': 'application/json'}})
			.success(function(data) {
				$scope.data_info = data; 
			})
			.error(function(data){
			});
		};
}]);
<!DOCTYPE html>
<html>
  <head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
    <body ng-app="app">
<div ng-controller="SelectController">
  
<select  
        ng-options="d as d.name for d in data_info track by d.id"
        ng-model="data_model">
          <option value="" disabled selected>Choose an option</option>
        </select>
  
  model: {{data_model}}
  
  </div>
  </body>
 </html>

有什么解决办法吗?

【问题讨论】:

  • track by d.id改成track by $index
  • 这不行,问题是没有用 ng-options 刷新数据。如果在 http 请愿之前初始化 data.info,这些响应不会更新 data.info 值,但是如果我使用 console 打印响应。 log(response) 数据被正确接收。 @georgeawg

标签: javascript html angularjs http


【解决方案1】:

$scope.data 将未定义。像$scope.data ={info:{}, model:{}};一样初始化它

【讨论】:

    【解决方案2】:

    您需要进行一些更改。下面的代码将起作用:

    在你的控制器中替换:

     $scope.data.model = {};
    

    为:

     $scope.selectedInfo = null;
     $scope.data.info = {};
    

    在 .success 上:

        .success(function(data) {
            $scope.data.info = data;
        })
    

    在您的 HTML 上:

     <select ng-model="selectedInfo" 
                ng-options="item as item.name for item in info">
             <option value="" disabled selected>Choose an option</option>
        </select>
    

    【讨论】:

    • 问题依旧,如果在http请求之前用随机值初始化数据数据没有更新,我不知道如何解决这个问题。
    【解决方案3】:

    问题是materialize.css的select标签被覆盖了。

    class="browser-default" 添加到选择标签。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 2014-11-30
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2015-03-16
      • 1970-01-01
      相关资源
      最近更新 更多