Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将事件中select选项的值绑定到ng模型_Javascript_Jquery_Angularjs - Fatal编程技术网

Javascript 无法将事件中select选项的值绑定到ng模型

Javascript 无法将事件中select选项的值绑定到ng模型,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,HTML <select class="form-control" ng-model="campaign.CampaignTypeId" ng-options="CampType.id as CampType.name for CampType in CampaignTypeIds track by CampType.id" > <option value="">Select campaign t

HTML

  <select class="form-control"
          ng-model="campaign.CampaignTypeId"
          ng-options="CampType.id as CampType.name for 
         CampType in CampaignTypeIds track by CampType.id" >
      <option value="">Select campaign type</option>
  </select>

在一个事件中,我得到一个活动对象作为响应,并且该对象具有活动类型ID:1,但我无法将活动类型ID绑定到选择选项的ng模型

关键在于ng选项,您必须这样放置
ng选项=“CampType as CampType.name for CampType in CampTypeIDS track by CampType.id”
。您可以看到它在其中工作。您还可以将ng模型绑定到对象,如
ng model=“campaign”

标记:

<body ng-app="myApp" ng-controller="myCtrl">
    <select class="form-control"
            ng-model="campaign"
            ng-options="CampType as CampType.name for 
            CampType in CampaignTypeIds track by CampType.id" >
        <option value="">Select campaign type</option>
    </select>
</body>

请注意,超时是在2秒后模拟请求。

当您手动设置$scope.campaign.CampaignTypeId时会发生什么?据我所知,angular仅在ng模型值本身上设置手表,而不是父对象上设置手表。这是并起作用的。标记上的ng模型为
ng model=“campaign“
而不是
ng model=“campaign.id”
恐怕是not@SriChatala你看到这个了吗。你能描述一下什么是不工作的吗?它在这里工作很好,如果我使用相同的格式,它不工作,无论如何谢谢你的帮助
<body ng-app="myApp" ng-controller="myCtrl">
    <select class="form-control"
            ng-model="campaign"
            ng-options="CampType as CampType.name for 
            CampType in CampaignTypeIds track by CampType.id" >
        <option value="">Select campaign type</option>
    </select>
</body>
angular.module('myApp', [])
.controller('myCtrl', ['$scope', '$timeout', function($scope, $timeout) {
    $scope.CampaignTypeIds = [{
      id: "1",
      name: "Location"
    }, {
      id: "2",
      name: "Brand"
    }];

    $scope.getSingleCampaignResponse = function(response) { 
        $scope.campaign = response; 
    }

    //simulating request
    $timeout(function() {
      $scope.getSingleCampaignResponse({ id: "2" });
      // or if you want like this
      // $scope.getSingleCampaignResponse({ id: "2" , name : "brand"});
    }, 2000)
}]);