【问题标题】:AngularJS dropdown list loses content after item selectedAngularJS下拉列表在选择项目后丢失内容
【发布时间】:2013-11-22 00:37:34
【问题描述】:

我有一个从 VS 运行的 ASP.Net WebAPI 项目,它以 JSON 的形式向我的 Angular 项目提供数据。我通过 $http.get 调用从 webapi 获取数据,如下所示:

function CarController($scope, $http) {
    $http.get('http://localhost:1246/api/values')
         .success(function (data, status, headers, config) {
             $scope.carSet = data;
         })
         .error(function (data, status, headers, config) {
             $scope.error = status;
             alert("You be broken buddy!");
         });
}

然后 carSet 像这样绑定在 html 中:

<!DOCTYPE html>
<html data-ng-app="">
<head>
    <title></title>
    <script src="scripts/controllers/controller.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.1/angular.min.js"></script>
</head>
<body>
    <div data-ng-controller="CarController">
        <select data-ng-model="carSet" onchange="DataChanged()" data-ng-options="c.Color for c in carSet"></select>
    </div>
</body>
</html>

一切都很好。我得到我的清单。第一个条目是空白的,现在可以了。

问题:
当我选择下拉列表中的任何项目时,整个列表都被清除,没有更多项目可供选择??哇!在这一点上,我显然很沮丧。此行为仅在我使用 $http 机制从 WebApi 检索数据时发生。如果我使用 $http.get 从文件或其他本地创建的数据存储中检索 json 数据,则不会发生这种情况。我只需要一个简单的下拉列表,它允许我使用它的选定值来过滤其他数据(另一个 db 调用。)

我会给你看照片..但这是我的第一篇文章..好吧....我不能。

非常感谢任何帮助。谢谢。

【问题讨论】:

  • 你能不能创建一个 plunker 来演示这个问题
  • onchange="DataChanged()" 是干什么用的?在 Angular 中使用本机更改内联事件处理程序不是一个好主意。使用ng-change,但是代码没有那个功能。 $scope = {}; 看起来也是个糟糕的主意
  • DataChanged() 只是一个处理程序,用于在选择后组合折叠时中断代码。然后我可以进入剩余的代码来尝试找出发生了什么。是的,不知道如何在 plunker 中建模 webapi 返回,因为使用 $http 从静态源检索数据似乎工作正常。动态部分不起作用。
  • 我建议不要使用 $scope = {};,这对用户控制器来说是一个更好的做法。至于发生了什么,为了更好地理解,看起来您遇到了存储问题,并且存储carset是要走的路,例如,this.carset = data。

标签: c# javascript http angularjs asp.net-web-api


【解决方案1】:

data-ng-model="carSet" 更改为不同的内容,例如data-ng-model="carChosenColor" 它会正常工作。

然后在$scope.carChosenColor 中将存储选择的值。

【讨论】:

  • 好吧,这有点对。足够好的提示让它发挥作用,这样你就赢了!是的!最终,我将代码从 data-ng-model="carSet" 更改为 data-ng-model="carSet.Color" 并且有效。今天这点小事把我逼疯了。非常感谢你阿图尔!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
相关资源
最近更新 更多