自定义指令内的AngularJS ng选项,该指令位于ng repeat内

自定义指令内的AngularJS ng选项,该指令位于ng repeat内,angularjs,angularjs-directive,angularjs-ng-repeat,Angularjs,Angularjs Directive,Angularjs Ng Repeat,您能帮我找到一种方法来设置和获取放置在自定义指令中的select元素值吗 这就是我所拥有的: <body ng-app="myApp"> <div ng-controller="MyCtrl"> <div ng-repeat="category in categories"> {{category.Name}}: <status-selector items="statuses" ng-model=

您能帮我找到一种方法来设置和获取放置在自定义指令中的select元素值吗

这就是我所拥有的:

 <body ng-app="myApp">
    <div ng-controller="MyCtrl">
      <div ng-repeat="category in categories">
        {{category.Name}}: 
        <status-selector items="statuses" ng-model="selectedStates[status.Id]"></status-selector>
      </div>
    </div>
  </body>
多谢各位


演示:

您应该有自己的类别模型作为
ng模型
。这可能更有意义


要设置状态,只需将JSON中填写的
状态

/。。。
.controller(“MyCtrl”,函数($scope){
$scope.categories=[{Id:1,名称:“Category1”,状态:1},{Id:2,名称:“Category2”}];
// ...
显然,要获得用户的选择,只需抓取
category.Status
属性


另外,还有一个小提示。您似乎来自.Net背景,在那里您已经习惯了Pascal大小写。在javascript中,使用camel大小写是常识,因此您将使用
{id:…,status:…}
而不是
{id:…,status:…}

谢谢Arun p Johny。您在Fiddle中的演示帮助我了解问题在[status.Id]中,我必须使用[category.Id]。谢谢!
myApp
.controller("MyCtrl", function($scope) {
    $scope.categories = [{Id:1, Name: "Category1"}, {Id: 2, Name: "Category2"}];
    $scope.statuses = [{Id: 1, Name: "Low"}, {Id: 2, Name: "Normal"}, {Id: 3, Name: "High"}]
    $scope.selectedStates = {};
})
.directive('statusSelector', function() {
    return {
        restrict: 'E',
        replace: true,
        scope: { items: '=', ngModel: '='},
        template: '<span><select class="select" ng-options="obj.Id as obj.Name for obj in items" ng-model="ngModel"></select></span>',
        link: function(scope, element, attrs) {
        }
    }
});