在下拉列表中以逗号分隔重复值

时间:2016-08-09 19:03:13

标签: angularjs node.js html5 angularjs-directive angularjs-scope

我正在研究angularJS和node.js应用程序并且陷入了这个愚蠢的错误。我想要几个小时,但它仍然让我头疼。如果你们中有人有解决方案或建议,我将感谢你们。

前端

<md-input-container class="md-block"  flex-gt-xs>
            <label>Service Category</label>
            <md-select ng-model="commissionScheme.category" ng-model-options="{trackBy: '$value._id'}">
              <md-option ng-repeat="srv in service_categories" ng-value="srv">
                {{srv.name}}
              </md-option>
            </md-select>
          </md-input-container>  
          <md-input-container class="md-block"  flex-gt-xs>
            <label>Service</label>
            <md-select ng-model="commissionScheme.service" ng-model-options="{trackBy: '$value._id'}">
              <md-option ng-repeat="srv in services" ng-value="srv">
                {{srv.name}}
              </md-option>
            </md-select>
          </md-input-container>

控制器

$http.get("api/models/service_category").success(function(response, status, headers){
        $scope.service_categories = response;
    });

    $scope.$watch("commissionScheme.category",function(newValue,oldValue){
        var url = "api/models/service";
        if(angular.isObject(newValue)){
            url += "?category._id="+newValue._id;
        }
        $http.get(url).success(function(response, status, headers){
            $scope.services = response;
        });
    });

输出 你们可以看到服务中的下拉,我得到了重复的价值。 This is what I get..

但是当我点击这个页面的任何地方时......它就像这样。 when I click anywhere on this page

我觉得$ watch被叫了两次但是...... 我没有在代码中找到我错的地方。

即使在网络检查中,您也可以通过服务看到两个电话?category._id = 49489492u4 ... 45

network inspect

是否有任何指令,我可以用来摆脱这个错误? 谢谢大家的时间和精力。 :)

0 个答案:

没有答案